MYSQL加入3个表

时间:2012-04-18 14:43:31

标签: mysql

表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缺少记录的情况下不起作用。在这种情况下,连接不适用于三个表。

2 个答案:

答案 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中没有相应的记录,也会选择来自bc的记录。请改用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;