这是我试图回答的问题:
我所拥有的是:
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(差异部门)具有相同的兴趣,那么我将 acnum 218 添加到列表中。
但是,如果他们都有相同数量的领域兴趣,我应该只添加 acnum 218 和 217。
兴趣表有 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