表A,B,C
如何创建连接这三个表的查询。条件是Table A
必须有记录。
我试过这个
select * from a
left join b on a.article_id = b.article_id
left join c on b.file_id = c.submission_id
where c.user_id = 6;
我的查询在Table C
缺少记录的情况下不起作用。在这种情况下,连接不适用于三个表。
答案 0 :(得分:2)
外表上的任何条件都必须在相关的ON子句中,而不是WHERE子句。
例如:
select * from a
left join b on a.article_id = b.article_id
left join c on b.file_id = c.submission_id and c.user_id = 6;
答案 1 :(得分:1)
如果您使用LEFT JOIN
,则即使表a
中没有相应的记录,也会选择来自b
和c
的记录。请改用INNER JOIN
:
SELECT * FROM a
INNER JOIN b ON a.article_id = b.article_id
INNER JOIN c ON b.file_id = c.submission_id
WHERE c.user_id = 6;