我有一张表格如下
id key value section
-----------------------------------
CT1 | A | 25 | M-2
CT1 | B | 35 | M-1
CT2 | A | 70 | M-1
CT2 | C | 30 | M-2
CT2 | D | 20 | M-3
CT3 | B | 40 | M-2
CT3 | A | 15 | M-1
CT4 | B | 25 | M-1
CT4 | D | 25 | M-2
我需要一种方法来返回没有特定键的所有ID。例如:
没有'D'的ID: CT1,CT3,
是否可以从MySQL查询中获取此结果?我也搜索过早期的问题。找不到任何东西。
答案 0 :(得分:3)
您可以使用HAVING
子句进行分组:
SELECT id
FROM mytable
GROUP BY id
HAVING COUNT(CASE WHEN key = 'D' THEN 1 END) = 0
答案 1 :(得分:0)
SELECT ID 来自你的朋友 关键不在 (从YOURTABLE中选择键)
答案 2 :(得分:0)
使用
SELECT id FROM table GROUP BY id HAVING count(key in ('D'))=0
您可以更改或添加一些元素到列表中以排除一个或多个ID。
答案 3 :(得分:0)
NOT IN方法必须如下所示:
SELECT id
FROM mytable
WHERE id NOT IN
(SELECT id
FROM mytable
WHERE key = 'D')
答案 4 :(得分:-1)
您可以使用WHERE NOT子句。看一下这个例子,它抓住了值不是25的所有东西。
select * from table where not value=25