【问题标题】:when i use query builder in laravel当我在 laravel 中使用查询生成器时
【发布时间】:2023-03-19 23:10:01
【问题描述】:

我有三个表用户、帖子和评论当我使用查询生成器时,我想获取该帖子的所有帖子和所有评论加入仅返回在 cmets 表中有评论的帖子

$collection = DB::table('post')
    ->join('comment','post.id','comment.post_id')
    ->join('users','users.id','comment.commenter_id')
    ->orderBy('time', 'DESC')
    ->get()->all();

我怎样才能退回所有帖子,或者如果您有其他方法可以告诉我,请告诉我

【问题讨论】:

  • 你需要使用leftJoin()而不是join()
  • 谢谢亲,我可以再问一个问题吗
  • 如果您需要询问与此相关的其他问题,请随时编辑您的问题,如果不相关,请创建一个新问题

标签: php laravel-5


【解决方案1】:

使用左连接。 它返回左表中的所有记录,无论连接表是否有记录。 https://www.w3schools.com/sql/sql_join_left.asp

$collection = DB::table('post')
        ->leftJoin('comment','post.id','comment.post_id')
        ->leftJoin('users','users.id','comment.commenter_id')
        ->orderBy('time', 'DESC')
        ->get()->all();

【讨论】:

  • 但是这个查询获取帖子,例如 ID 为 1 的帖子在结果集中有两条评论我发现这条帖子的两条评论对于每个评论都有一个项目在集合中我可以在一个项目中获得所有评论吗?
  • 那你可以t do, Thats两条记录。
猜你喜欢
  • 2017-12-28
  • 2019-05-06
  • 2017-03-29
  • 2014-02-21
  • 2018-07-03
  • 2015-12-13
  • 2019-04-25
  • 2018-06-23
相关资源
最近更新 更多