これは私が答えようとしている質問です:
私が持っているものは次のとおりです。
SELECT DISTINCT a1.acnum
FROM academic a1, academic a2
WHERE a1.deptnum = a2.deptnum
AND a1.acnum <> a2.acnum
AND a1.acnum IN (Select acnum
from interest
group by acnum
having count(acnum) >1);
これは間違っています。なぜなら、acnum (アカデミック番号) 218 が acnum 217 と同じ部門で働いていて、かつ acnum 199 (diff 部門) と同じ興味を持っている場合、acnum 218 をリストに追加するからです。
ただし、acnum 218 と 217 の両方が同じ量の分野の関心を持っている場合にのみ追加する必要があります。
Interest テーブルには fieldnum 、acnum があります
アカデミック テーブルには、acnum、deptnum、name があります
部門テーブルには deptnum、deptName があります
FIELDNUM ACNUM DESCRIP
------------------ --------------------
292 100 Multiprocessor and Special purpose computer design
293 100 General (HW)
293 197 Computer architecture
出力には、すべての学者の番号のみがリストされているはずですが、少し明確にするために:
Acnum Deptnum Interest
1 1 g&f
2 1 g&f
3 2 f
4 3 l
5 4 r&l
6 4 r&l
出力は次のようになります: 1 2 5 6