我有一个items
表,一个tags
表和一个reletations
表。
我需要找不到标记的项目。
使用此(工作)查询,我找到每个项目的标签号:
SELECT i.id, i.text, COUNT( ti.item ) AS count
FROM items AS i
JOIN topic_item AS ti ON ti.item = i.id
GROUP BY ti.item
如果尝试使用以下命令修改查询:
ti.item != i.id
或我添加
WHERE count = 0
但这不是正确的方法。 这是正确的做法吗?
答案 0 :(得分:1)
尝试left join
,如下所示
SELECT i.id, i.text, COUNT( ti.item ) AS count
FROM items AS i
LEFT JOIN topic_item AS ti ON ti.item = i.id
WHERE ti.item is null
GROUP BY ti.item
答案 1 :(得分:1)
您可以使用left join
,并获取没有匹配标记的项目:
SELECT i.id, i.text
FROM items AS i
LEFT JOIN topic_item AS ti ON ti.item = i.id
WHERE ti.item is null
您还可以使用not exists
:
SELECT i.id, i.text
FROM items AS i
WHERE not exists(
select * from topic_item AS ti
where ti.item = i.id
)