【问题标题】:MYSQL: Obtaining distinct values in column A having all same value in column BMYSQL:获取A列中的不同值在B列中具有相同的值
【发布时间】:2021-01-25 11:41:00
【问题描述】:
我有下表,有两列:
ID VALUE
1 false
1 true
2 false
2 true
2 false
3 false
3 false
4 false
4 false
5 true
5 false
我需要在 VALUE 列中选择所有只有 false 值的 ID。
例如,ID 1 同时具有 false 和 true 值。我的结果中不需要这一行。
在上面的示例中,我只需要选择 ID:3 和 4。它们是唯一在 VALUE 列中只有 false 值的 ID。
谢谢
【问题讨论】:
标签:
mysql
sql
select
group-by
having-clause
【解决方案1】:
你可以使用group by和having:
select id
from mytable
group by id
having max(value) = 'false'
理由:'true' 大于'false',因此max(value) = 'false' 确保组中没有'true' 值。
【讨论】:
-
-
欢迎@MarianD。如果我的回答正确地回答了您的问题,请点击复选标志accept it...谢谢。
【解决方案2】:
有多种方法可以解决这个问题,我是用最简单的一种,以后你可以尝试更多。
我只是过滤掉带有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` ;