我有以下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查询中添加另一个子句以匹配我的请求?
答案 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
条件失败。