laravel从3表中选择所有行

时间:2017-05-22 14:04:10

标签: php mysql laravel

如何从laravel 5.4中的3个表中选择所有第1列的行?

我想选择帖子,评论,用户post_id = comment.post_idcomment.user_id = user.id

post_title的单页帖子中显示,评论按用户名

我有3张这样的表

Schema::create('posts', function (Blueprint $table) {
      $table->increments('id');
      $table->text('title');
      $table->longText('description');
      $table->text('image');
      $table->timestamps();
});

Schema::create('comments', function (Blueprint $table) {
      $table->increments('id');
      $table->longText('comment');
      $table->integer('user_id');
      $table->integer('post_id');
      $table->timestamps();
});

Schema::create('users',function (Blueprint $table){
      $table->increments('id');
      $table->string('username',30)->unique();
      $table->string('email')->unique();
      $table->string('password',60);
      $table->rememberToken();
      $table->timestamps();
});

谢谢你的回答。

2 个答案:

答案 0 :(得分:3)

使用Eloquent关系延迟加载数据可以很容易地做到这一点。

最佳起点是阅读https://laravel.com/docs/5.4/eloquent-relationships

答案 1 :(得分:0)

您可以执行以下操作:

$items = \DB::table('post')
->leftJoin('comment','comment.post_id', '=', 'post.post_id')
->leftJoin('user','user.user_id', '=', 'comment.user_id')
->where('user.user_id',$user_id)
->get();