sql - 查询多行

时间:2017-07-20 20:29:30

标签: mysql sql

我有一个包含名称和位列的表,指示名称是否已删除(1)或不是(0)。我正在尝试编写一个返回所有已删除名称的查询,除非该名称也未被删除(名称可能会在表格中显示多次)。希望有意义!

以下是一些示例数据:

+------+-------+
|Name  |Deleted|
+------+-------+
|Bob   |   1   |
+------+-------+
|Joe   |   1   |
+------+-------+
|Joe   |   0   |
+------+-------+
|Bob   |   1   |
+------+-------+
|Sam   |   1   |
+------+-------+

结果将是BobSam
两个人都是Bob'条目是' 1' 单个Sam条目是' 1'。

Joe不会参与结果,因为他是' 1'和' 0'。

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

一种方法使用聚合:

select name
from t
group by name
having min(deleted) = 1;

答案 1 :(得分:1)

SELECT T.Name
  FROM Table T
 WHERE T.Deleted = 1
   AND NOT EXISTS (SELECT *
                     FROM Table T2
                    WHERE T2.Name = T.Name
                      AND T2.Deleted = 0)