Mysql 如果行未通过筛选器,则可以忽略结果组
我有下一个问题Mysql 如果行未通过筛选器,则可以忽略结果组,mysql,sql,performance,Mysql,Sql,Performance,我有下一个问题 SELECT id, type FROM clients WHERE 1 GROUP BY id, type +----+------+ | id | type | +------+----+ | 1 | 1 | | 1 | 2 | | 1 | 3 | | 2 | 2 | | 2 | 3 | +----+------+ 但是我想忽略id“1”,因为它有一个类型1,所以在这种情况下,我只想有id“2” 有人能帮我吗,谢谢你可以使用不存在:
SELECT id, type FROM clients WHERE 1 GROUP BY id, type
+----+------+
| id | type |
+------+----+
| 1 | 1 |
| 1 | 2 |
| 1 | 3 |
| 2 | 2 |
| 2 | 3 |
+----+------+
但是我想忽略id“1”,因为它有一个类型1,所以在这种情况下,我只想有id“2”
有人能帮我吗,谢谢你可以使用
不存在
:
SELECT id, type
FROM clients AS c1
WHERE NOT EXISTS (SELECT 1
FROM clients AS c2
WHERE c1.id = c2.id AND c2.type = 1)
输出:
+----+------+
| id | type |
+----+------+
| 2 | 2 |
| 2 | 3 |
+----+------+
有点不同的语法:
SELECT distinct id, type
FROM clients
WHERE id not in (select distinct id from clients where type=1)
你的问题在我看来有点晦涩难懂,我通常很善于猜测人们在寻找什么。id为1的
有什么问题?您还有type
2和3(在数据中),因此听起来您也不应该有id
2。