我有一个多对多的索引表,我想对它进行包含/排除类型查询.
fid实际上是一个整数索引,但这里作为字母以便于理解.这是一个示例表:
表t
eid | fid
----+----
1 | A
1 | B
1 | C
2 | B
2 | C
3 | A
3 | C
4 | A
4 | B
5 | B
Run Code Online (Sandbox Code Playgroud)
以下是我想要的一些示例查询.
我似乎无法找出一个会执行此操作的查询.
我试过像这样的自我加入:
select *
from t as t1
join t as t2
where t1.eid=t2.eid
and t1.fid!=t2.fid
and t1.fid=B and t2.fid!=A
Run Code Online (Sandbox Code Playgroud)
这将无效,因为它仍会返回eid = 1和fid = C的行.
我清楚自己想要什么吗?
使用set减法
Run Code Online (Sandbox Code Playgroud)Select eid from t where fid = 'B' EXCEPT select eid from t where fid = 'A'
归档时间: |
|
查看次数: |
389 次 |
最近记录: |