我试图获取查询显示表行,即使一个表为空。
现在我需要在每个表中都有值来获得输出。
SELECT * FROM blog JOIN user JOIN photos WHERE blog.user_id = user.id
AND blog.id = photos.blog_id
我试过像这样的OR IN
SELECT * FROM blog JOIN user JOIN photos
WHERE blog.user_id = user.id OR blog.id
IN (SELECT photos.blog_id FROM photos WHERE blog.id = photos.blog_id
但这并没有成功。任何提示?
答案 0 :(得分:4)
如果您使用正确的连接语法,那么这很容易:
SELECT *
FROM blog left outer JOIN
user
On blog.user_id = user.id left outer join
photos
on blog.id = photos.blog_id
答案 1 :(得分:2)
最简单的答案是使用LEFT JOIN
而不是INNER JOIN
。
SELECT *
FROM blog LEFT JOIN user ON blog.user_id = user.id
LEFT JOIN photos ON blog.id = photos.blog_id
即使表blog
为空,也会显示表photos
中的所有记录。
要进一步了解联接,请访问以下链接: