2016-02-19 22 views
0

我有一个查询如果某行不过去的一个过滤器

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”

谁能帮助我,谢谢

+2

你的问题似乎有点含糊措辞给我,和我平时在猜测什么人正在寻找不错。 WHERE id <> 1'有什么问题? _你也有类型2和3(在数据中),所以它听起来像你不应该有'id' 2 ._ – Uueerdo

回答

0

您可以使用NOT EXISTS

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 | 
+----+------+ 
+0

是的,这是解决方案,谢谢@GiorgosBetsos – pipook

0

一点点不同的语法:

SELECT distinct id, type 
FROM clients 
WHERE id not in (select distinct id from clients where type=1) 
相关问题