0

我试图让查询显示表行,即使一个表是空的。

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

 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

但这并没有奏效。有小费吗 ?

4

2 回答 2

4

如果您使用正确的连接语法,那么这很容易:

SELECT *
FROM blog left outer JOIN
     user
     On blog.user_id = user.id left outer join
     photos
     on blog.id = photos.blog_id
于 2013-05-20T14:56:26.703 回答
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为空,这也会显示表中的所有记录。

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-05-20T14:55:17.433 回答