我有一张MySQL表。
在表格中我有“serie”和“number”
它看起来像这样:
id serie number
-------------------------------
0 1 1
1 1 2
2 1 3
3 2 1
4 2 2
5 2 3
6 3 1
7 3 3
Maby你注意到“serie”3,没有数字2
现在我想做一个查询,我搜索系列包含,让我们说数字1,但不是数字2
我可以这样做吗?
我是这样开始的:
SELECT serie FROM table as ser1 WHERE number = "1";
SELECT serie FROM table WHERE number = ser1.number AND number != "2";
答案 0 :(得分:1)
您可以使用not exists
这样做:
SELECT serie
FROM table as ser1
WHERE number = "1" and not exists
(select 1 from table where serie = ser1.serie and number = "2");
答案 1 :(得分:1)
您可以使用合适的HAVING
子句进行分组:
SELECT serie
FROM mytable
GROUP BY serie
HAVING COUNT(CASE WHEN number = 1 THEN 1 END) > 0 AND
COUNT(CASE WHEN number = 2 THEN 1 END) = 0