显示表,即使一个是空的

时间:2013-05-20 14:54:32

标签: sql

我试图获取查询显示表行,即使一个表为空。

现在我需要在每个表中都有值来获得输出。

 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

但这并没有成功。任何提示?

2 个答案:

答案 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中的所有记录。

要进一步了解联接,请访问以下链接: