SQL查找id-s,其中column的值等于特定行的值

时间:2017-08-31 17:25:00

标签: mysql sql

我们说我使用下表:

ID   LETTER    VALUE

1       A      NON-VALID   
1       B      VALID 
1       C      VALID
1       D      VALID
2       A      NON-VALID
2       B      VALID
2       C      NON-VALID
2       D      VALID

所以,我想要的是简单的,但我还没有找到类似的东西或者自己想出来的东西。

我想在我要定义的所有字母中使用已经让我们说值VALID的ID。例如,如果我想在B和C上有有效值,我希望我的数据集返回ID 1。

愚蠢的例子:

SELECT ID 
FROM table 
WHERE VALUE=VALID IN EVERY ROW WHERE LETTER BETWEEN 'B' AND 'C'

1 个答案:

答案 0 :(得分:1)

您可以这样做:

select id
from t
where letter in ('B', 'C') and value = 'Valid'
group by id
having count(distinct letter) = 2;  -- "2" is the number of letters in your list