我有两张桌子:
第一个名为“card”,一列“id”。
| id |
| 1 |
| 2 |
| 3 |
| .. |
第二个表名为“waste”,有两列“card_id”和“waste_type”。
| card_id | waste_type |
| 1 | 1 |
| 1 | 3 |
| 2 | 2 |
| 2 | 1 |
我想只选择没有waste_type = 2
的卡片查询应如下所示:
SELECT c.id FROM card c
JOIN waste w
ON c.id = w.card_id
WHERE waste_type <> 2
我想要这个结果:
id
1
但我明白了:
id
1
2
我该怎么做?非常感谢你!
答案 0 :(得分:2)
你应该使用not exists子句。
select c.id
from card c
where not exists (select null from waste w
where w.card_id = c.id
and w.waste_type = 2)
根据您的查询,我猜您更愿意检索
1
1
2