Sql 选择出现在两个位置的条目

Sql 选择出现在两个位置的条目,sql,select,Sql,Select,以下是模式: 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 Pa

以下是模式:

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查询?

集中思考。您正在查找A册论文作者集和B册论文作者集中的作者:

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'
    )
  )
);

这是测验中的问题还是什么?这是关于SQL的练习题。我不知道答案,所以决定提问并学习。我不是真的想在任何学校作业/测验中抄袭。那很好。对不起,我不是故意让你失去动力的。继续质疑!没关系。非常感谢Maheswaran!非常感谢。但愿我有足够的声誉来投票。当书名输入增加时,考虑到大量数据,这会在框架查询和性能方面产生开销。嗯,该语句在任何地方都使用索引非常快。只有当你期望找到大量作者时,这才没有意义。是的,当用于更多的书籍时,它看起来有点笨拙:-)正如您在回答中所说:有很多方法可以编写查询。