我的表是:
sid status
----|-------|
18 | 1 |
23 | 3 |
23 | 3 |
44 | 3 |
44 | 1 |
44 | 3 |
我需要选择状态为 " 3"
的sid行结果将是:
sid status
----|-------|
23 | 3 |
23 | 3 |
如何在sqlite中执行此操作?
答案 0 :(得分:1)
您希望获取不存在具有相同sid
但不同status
的相应行的所有行:
SELECT *
FROM MyTable
WHERE status = 3
AND NOT EXISTS (SELECT 1
FROM MyTable AS T2
WHERE T2.sid = MyTable.sid
AND T2.status != 3)
答案 1 :(得分:1)
您可以使用not exists
子查询过滤掉另一行所存在的行sid
和status = 3
:
select sid
, status
from YourTable yt1
where not exists
(
select *
from YourTable yt2
where yt1.sid = yt2.sid
and yt2.status <> 3
)