0

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

4

2 回答 2

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;
于 2012-04-18T14:46:21.137 回答
1

如果使用LEFT JOIN,则即使表中没有对应的记录,也会选择来自a和的记录。改用:bcINNER 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;
于 2012-04-18T14:47:24.063 回答