Mysql:如何在给定某个其他列值

时间:2017-10-09 11:00:23

标签: mysql sql

我有一个类似于表(id,C1,C2,R,..)的表,在此表中,C1-C2对与一个或多个R相关,例如(id1,a,b,r1,...),{{1} } 我想找出仅与某个(id2,a,b,r2,...)相关的所有C1-C2对(例如R,然后r1对不会被包含在内,因为它' s也与a-b有关,我该如何编写查询?

2 个答案:

答案 0 :(得分:0)

您可以按C1和C2进行分组,并计算等于您想要的值的" r"并确保它不是0,以及&#的数量34; r" s(并确保它为0):

SELECT   c1, c2
FROM     mytbale
GROUP BY c1, c2
HAVING   COUNT(CASE r WHEN 'r1' THEN e END) > 0 AND
         COUNT(CASE r WHEN 'r1' THEN NULL ELSE 1 END) = 0 

答案 1 :(得分:0)

如果我理解正确,您可以使用group byhaving。我想要所有只与一个r相关的对:

select c1, c2, max(r) as r
from t
group by c1, c2
having min(r) = max(r);

如果您有一个特定的r

select c1, c2
from t
group by c1, c2
having min(r) = max(r) and min(r) = 'r1'