仅检索具有连接记录的记录

时间:2014-08-06 11:58:16

标签: mysql sql

我有以下sql查询,它检索我加入的记录。但是我想获得没有加入记录的地方,见下文:

SELECT `places`.* FROM `places` INNER JOIN `quotes` ON `places`.`id` = `quotes`.`place_id` 
WHERE `quotes`.`user_id` = 1 AND 

这部分内容我不知道如何写,但我只希望得到places count of quotes = 0之类的地方:

"quotes.count == 0"

如何在此sql查询中添加另一个子句以匹配我的请求?

1 个答案:

答案 0 :(得分:2)

你想要outer join,大概是left outer join

SELECT `places`.*
FROM `places` LEFT JOIN
     `quotes`
     ON `places`.`id` = `quotes`.`place_id` AND
        `quotes`.`user_id` = 1
WHERE quotes.place_id is null;

请注意,where子句中的条件已移至on子句。如果不匹配,则quotes中的列会填充NULL s - 这会导致where条件失败。