![](/img/trans.png)
[英]MySQL select all distinct values from column a for each distinct column b, where count distinct a >1
[英]MYSQL: Obtaining distinct values in column A having all same value in column B
我有下表,有兩列:
ID VALUE
1 false
1 true
2 false
2 true
2 false
3 false
3 false
4 false
4 false
5 true
5 false
我需要 select 所有在 VALUE 列中只有假值的 ID。 例如,ID 1 具有假值和真值。 我的結果中不需要這一行。 在上面的示例中,我只需要 select ID:3 和 4。這些是唯一在 VALUE 列中只有假值的 ID。
謝謝
有多種方法可以解決這個問題,我是用最簡單的一種,之后你可以嘗試更多。
我只是用true過濾掉ID,然后根據ID分組
SELECT
t.ID
FROM
twocol t
WHERE t.ID NOT IN
(SELECT
ID
FROM
twocol
WHERE VALUE = 'true')
GROUP BY t.`ID` ;
您可以使用group by
和having
:
select id
from mytable
group by id
having max(value) = 'false'
理由: 'true'
大於'false'
,因此max(value) = 'false'
確保組中沒有'true'
值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.