sql查询提取行

时间:2014-03-14 15:54:44

标签: mysql sql

表:

id    user_id    guessed_id    result
1219  27         4             Y
1357  20         4             Y
2     3          5             N
9     20         5             N
1392  20         11            Y
1618  27         11            N
2471  20         25            Y

我想构建一个查询,只获取具有值Y的2个结果的guessed_ids。

在上面的行中,查询应返回:

4

因为包含guessed_id 4的行在列结果中都有Y.

不应该返回

guessed_id 5,因为它包含2 N

不应该返回

11,因为它有N

不应该返回

25,因为它只有一个Y

我正在使用mysql DBMS。

1 个答案:

答案 0 :(得分:0)

GROUP BY / HAVING会执行您想要的操作,只计算Y的数量并返回计数为2的guessed_id s ;

SELECT guessed_id
FROM myTable
WHERE result='Y'
GROUP BY guessed_id
HAVING COUNT(*)=2

An SQLfiddle to test with

我不确定您的示例是否允许点击任何N结果,我认为只要有{{1}的确切行数,它们就不相关}。