这是架构:
CREATE TABLE AUTHOR (
AID char(9),
Aname VARCHAR(10),
Occupation VARCHAR(10),
PRIMARY KEY(AID)
);
CREATE TABLE Book (
ISBN CHAR(7),
Year NUMBER(4),
Title VARCHAR(20),
PRIMARY KEY(ISBN)
);
CREATE TABLE Paper (
PID CHAR(4),
Title VARCHAR(20),
ISBN CHAR(7),
PRIMARY KEY (PID),
FOREIGNN KEY (ISBN) REFERENCES BOOK
);
CREATE TABLE WRITES (
AID CHAR(9),
PID CHAR(4),
PRIMARY KEY (AD,PID),
FOREIGN KEY (AID) REFERENCES Author,
FOREIGN KEY(PID) REFERENCES Paper
);
为了找到论文出现在“人工智能”和“通用算法”这两本书中的作者的姓名,我应该执行什么SQL查询?
答案 0 :(得分:0)
成套思考。您正在寻找作为A和论文作者集中的论文作者集中的作者:
select * from author
where aid in
(
select aid from writes where pid in
(
select pid from paper where isbn in
(
select isbn from book where title = 'Artificial Intelligence'
)
)
)
and aid in
(
select aid from writes where pid in
(
select pid from paper where isbn in
(
select isbn from book where title = 'Generic Algorithms'
)
)
);