【发布时间】:2011-09-01 06:41:48
【问题描述】:
col1 col2
A bear
A dog
A cat
B bear
B dog
B cat
C dog
C cat
D bear
D dog
D cat
E bear
E dog
E cat
F dog
F cat
如果我想选择至少有一行 col2 = 'bear' 的所有 col1 值,我可以这样做:
SELECT col1
FROM mytable
WHERE col1 IN ('A','B','C')
GROUP BY col1
HAVING col2 = 'bear'
这将返回 A 和 B
但我只想从 col1 中选择没有 col2 = 'bear' 的行的值
我在想NOT HAVING,但这似乎不起作用。
有什么想法吗?谢谢!
【问题讨论】:
-
Having Col2 != 'bear'能得到你需要的东西吗? -
虽然会返回 A、B 和 C,因为
col2 = 'cat'和'dog'都满足col2 != 'bear' -
不用担心。这些天我花在 SQL 上的时间不像以前那样多。 Where Not exists 是我的下一个建议,但它已经在答案中。