在另一列中找到只有一个值的行?

时间:2014-01-14 12:49:55

标签: mysql

这是我的表

column1          column2 (varchar)
--------------------------
foobar           0
foobar           1
whatever         0
whatever         0
whatever         0

我想要的是从column1获取所有那些在第2列中只有零的值。在这种情况下我只想要“无论什么”,因为“foobar”的值为0和1.我尝试了一个连接,但是失败了。我怎么能解决这个问题?

谢谢!

3 个答案:

答案 0 :(得分:2)

试试这个:

SELECT column1
FROM table1 t1
WHERE (SELECT SUM(column2)
       FROM table1 t2
       WHERE t2.column1=t1.column1
       GROUP BY column1) = 0
--GROUP BY column1

如果您只希望一行取消注释最后一行

答案 1 :(得分:1)

这是最简单的方法:

select column1
from table t
group by column1
having sum(column2 <> '0') = 0;

也就是说,计算column2中不是0的值的数量。并确保没有这样的行。

答案 2 :(得分:-1)

我更喜欢使用join over subquery,它通常会提供更好的结果

SELECT column1
FROM table1 t1
INNER JOIN table1 t2
 ON t2.column1=t1.column1
-- GROUP BY column1