多対多のインデックス テーブルがあり、包含/除外タイプのクエリを実行したいと考えています。
fid は実際には整数インデックスですが、ここでは理解しやすいように文字で示しています。サンプルテーブルは次のとおりです。
タブレット
eid | fid
----+----
1 | A
1 | B
1 | C
2 | B
2 | C
3 | A
3 | C
4 | A
4 | B
5 | B
ここに私が欲しいいくつかのサンプルクエリがあります。
- Fid B を持ち、A を持たない eid はどれですか? (eid 2 と 5 に答えてください)
- FID C を持ち、A を持たない eid は? (回答 eid 2)
これを行うクエリを理解できないようです。
私はこのような自己結合を試みました:
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
eid=1 および fid=C の行が返されるため、これは機能しません。
私は自分が何を望んでいるのか明確ですか?