查询在加入时不返回所有结果

时间:2013-05-26 18:53:04

标签: mysql database

我正在处理我的PHP应用程序,并且遇到了此查询的问题:

SELECT imagesets.id, imagesets.name, users.name AS username, users.email, COUNT(images.id) AS count
FROM fotosite.imagesets
INNER JOIN users ON imagesets.userid = users.id
INNER JOIN images ON imagesets.id = images.imageset
GROUP BY imagesets.id
ORDER BY imagesets.id desc;

但是,如果images表中没有与给定ID匹配的数据,则该查询不会返回结果。

例如,此查询工作正常,但不提供我想要的计数列:

SELECT imagesets.id, imagesets.name, users.name AS username, users.email
FROM fotosite.imagesets
INNER JOIN users ON imagesets.userid = users.id
GROUP BY imagesets.id
ORDER BY imagesets.id desc;

1 个答案:

答案 0 :(得分:2)

使用LEFT JOIN代替INNER JOIN。 INNER JOIN将仅返回第二个表中可用于连接条件的数据行。 LEFT JOIN也返回在另一个表中的行上无法连接的行。