基于所有具有相同值的辅助列检索列

时间:2019-02-28 20:45:00

标签: mysql select

我有一个表,其中包含日程表输入项。它具有一个ID(它是相关计划记录的ID)和一个VALUE(是Y或N)来指示其是否完整。

我需要一个查询来在所有ID都等于Y时返回VALUE。因此,在下面的示例表中,我希望查询返回ID为2和3。

我尝试使用COUNT(*),嵌入式select语句等对多个查询进行变体,但是我没有任何运气。

非常感谢您的帮助!

+------+------+
|ID    |VALUE |
+------+------+
|1     |Y     |
+------+------+
|1     |Y     |
+------+------+
|1     |N     |
+------+------+
|2     |Y     |
+------+------+
|2     |Y     |
+------+------+
|3     |Y     |
+------+------+

1 个答案:

答案 0 :(得分:0)

您只需要比较ID值的行数和该Y的{​​{1}}值的行数(利用MySQL将真实值视为1,错误为0):

ID

输出

SELECT ID
FROM table1
GROUP BY ID
HAVING COUNT(*) = SUM(VALUE = 'Y')

Demo on dbfiddle