如果组成员没有其他列值,则MYSQL按列分组[关闭]

问题描述 投票:0回答:2

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

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 0,1,2,3,4,5没有显示,那么当记录属于该组时,只能通过登录给我记录组。

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

mysql
2个回答
2
投票

使用子查询查找具有CMD != 6的所有登录,然后将其过滤掉。

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

要么

SELECT t1.*
FROM yourTable AS t1
LEFT JOIN yourTable AS t2 ON t1.login = t2.login AND t2.cmd != 6
WHERE t2.login IS NULL

DEMO


0
投票

你可以使用NOT EXISTS

SELECT *
FROM Table
WHERE NOT EXISTS (
    SELECT 1
    FROM Table
    WHERE cmd <> 6
)
© www.soinside.com 2019 - 2024. All rights reserved.