所以基本上我要回答的问题是:
"返回学术界“Mark Yee”撰写的论文。"
以下是我使用的数据库: https://ufile.io/72wph
Academics数据库的关系模式如下:
DEPARTMENT(deptnum,descrip,instname,deptname,state,postcode)
学术(acnum,deptnum *,famname,givename,姓名缩写,标题)
PAPER(panum,title)
AUTHOR(panum *,acnum *)
FIELD(fieldnum,id,title)
INTEREST(fieldnum *,acnum *,descrip)
关于Academics数据库的一些注释:
●学术部门属于一个机构(instname),通常有很多学者。一个 学术只适用于一个部门。
●研究论文(PAPER)通常由几位学者撰写,当然也经常是学者 写了几篇论文(作者)。
●研究领域(FIELD)经常吸引许多学者,学者可以对此感兴趣 (兴趣)在几个研究领域。
我知道我必须加入这两张桌子,但之后该怎么办呢?
我已经尝试过(这只列出了所有的PANUM')
SELECT PANUM
FROM ACADEMIC, AUTHOR
WHERE FAMNAME LIKE '%Yee%' AND GIVENAME LIKE '%Mark%';
答案 0 :(得分:1)
SELECT PA.PANUM, PA.TITLE
FROM ACADEMIC AC
INNER JOIN AUTHOR AU ON AC.ACNUM = AU.ACNUM
INNER JOIN PAPER PA ON PA.PANUM = AU.PANUM
WHERE AC.FAMNAME = 'Yee' AND AC.GIVENAME = 'Mark';
答案 1 :(得分:-1)
表author
包含2个外键acnun
(对于学术用户)和panum
(对于“纸张”),这些列也可以在其他表中找到。使用这些公共列以逻辑方式将表连接在一起。
select a.panum, d.famname, d.givename
from AUTHOR a
INNER JOIN ACADEMIC d ON a.acnum = d.acnum
在古代首次使用SQL时,常常使用from table1, table2
,但这不再被视为最佳做法,即使您的老师希望您使用该语法,也不要。