我有一个表格,结构如下:
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
使用子查询查找具有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
你可以使用NOT EXISTS
SELECT *
FROM Table
WHERE NOT EXISTS (
SELECT 1
FROM Table
WHERE cmd <> 6
)