Mysql - 如何检索没有特定属性的所有项目?

时间:2016-09-28 13:37:17

标签: mysql mysql-workbench

我有一张表格如下

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查询中获取此结果?我也搜索过早期的问题。找不到任何东西。

5 个答案:

答案 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