【问题标题】:MySQL Left Join (using MeekroDB)MySQL 左连接(使用 MeekroDB)
【发布时间】:2016-08-23 23:19:24
【问题描述】:

这确实是 MeekroDB 独有的问题,只是想把我的脑袋绕在 Left_Join 上。

我有 2 个表:comp_checklist 和 comp_checklist_items

我想从comp_checklist 中获取用户 ID 匹配的所有行,并且效果很好:

DB::query("SELECT * FROM comp_checklist WHERE user_id = %i", $user_id );

现在我想要获得相同的查询(comp_checklist 中用户 ID 匹配的所有行)并添加任何 comp_checklist_items 行,其中checklist_id 在两个表中都匹配(checklist_id 是 @987654328 中的主键@ 桌子)。我在下面使用但只是得到false

DB::query("SELECT * FROM comp_checklist WHERE user_id = %i LEFT JOIN comp_checklist_items on checklist_id = comp_checklist.checklist_id", $user_id );

【问题讨论】:

    标签: mysql meekro


    【解决方案1】:

    JOIN 应该在 WHERE 之前,并且所有列都应该有表名,否则会报错:

    DB::query("SELECT * FROM comp_checklist 
               LEFT JOIN comp_checklist_items 
               ON comp_checklist_items.checklist_id = comp_checklist.checklist_id 
               WHERE comp_checklist.user_id = %i ", $user_id );
    

    【讨论】:

    • 知道了,这行得通,但我想要的方式不同。基本上它返回清单 A 两次,每个项目一次,而不是清单 A 一次与另一个数组,其中项目关联(嵌套)到它
    • @Packy 例如,如果您想获取 user_id = 3 的所有行,并且此清单的 comp_checklist_items 中有两行,您将获得两个结果。如果您想获取其他内容,请发布一些示例数据和您期望的结果集示例。
    猜你喜欢
    • 1970-01-01
    • 2012-11-13
    • 2012-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多