这是我创建的数据库的模式,我已经用大量数据填充了表:
DEPARTMENT(deptnum(P), descrip, instname, deptname, state, postcode)
ACADEMIC(acnum(p), deptnum*, famname, givename, initials, title) //acnum = Academic Number
PAPER(panum(P), title) //panum = Paper Number
AUTHOR(panum*(P), acnum(P)*)
FIELD(fieldnum(P), id, title)
INTEREST(fieldnum*(P), acnum*(P), descrip)
键:P =主键
仅凭这一点,你如何写一个查询,你找到所有与学术编号151共同撰写论文的学者?输出应列出学号,但不应包括学号151。
SELECT acnum
FROM ...
WHERE ...
而且,你如何撰写一个查询来寻找作者的学者,并且只与同一州的学院的作者共同撰写论文?
SELECT acnum, title, famname
FROM ...
WHERE ...
提前致谢。
答案 0 :(得分:0)
您可以多次在查询中使用同一个表。以下是解决第一个查询的一种方法:
select p2.acnum
from ( select panum from paper where acnum = 151) p1
join paper p2
on p1.panum = p2.panum
where p2.acnum != 151
/