如果组成员没有其他列值,则按列对MYSQL进行分组

时间:2019-03-13 16:32:08

标签: mysql

我有一个表,其结构如下:

LOGIN    OPEN_TIME              CMD
1        2018-09-17 17:13:06    6
1        2018-09-17 17:11:06    5
1        2018-09-17 17:15:06    4
2        2018-09-17 17:13:06    6
3        2018-09-17 17:12:06    6
3        2018-09-17 17:23:06    6
3        2018-09-17 17:43:06    4
2        2018-09-17 17:23:06    6

我想获得如下表结果

2        2018-09-17 17:13:06    6

这意味着当属于该组的记录仅具有CMD 6时,如果没有CMD 6的组成员具有CMD 0、1、2、3、4、5没有显示它们,则通过登录名给我该记录组。 / p>

您可以在这里看到小提琴:http://sqlfiddle.com/#!9/81506f/1

2 个答案:

答案 0 :(得分:2)

使用子查询查找所有具有%$Name%的登录名,然后将其过滤掉。

CMD != 6

SELECT *
FROM yourTable
WHERE login NOT IN (
    SELECT login
    FROM yourTable
    WHERE cmd != 6)

DEMO

答案 1 :(得分:0)

您可以使用NOT EXISTS

SELECT *
FROM Table
WHERE NOT EXISTS (
    SELECT 1
    FROM Table
    WHERE cmd <> 6
)