繁体   English   中英

使用联接重述子查询

[英]restate a subquery using a join

要求是使用表联接而不是子查询来查找与标题为“沃尔特·迪斯尼的艺术”的书籍具有相同主题代码的所有书籍,例如我编写的以下内容。 我面临的问题是我不确定如何在不使用子查询的情况下根据所需条件过滤结果。 这是我到目前为止的

SELECT ISBN, Title, Subject_Code
FROM Book
where Subject_Code = Book.subject_Code
ORDER BY Title;

这是我的create语句,用于阐明我正在使用哪种表。 谢谢!

CREATE TABLE IF NOT EXISTS subject
    (SubjectCode nvarchar(3) PRIMARY KEY NOT NULL, 
    Subject nvarchar(15)); 




CREATE TABLE IF NOT EXISTS Book 
    (ISBN nvarchar(13) PRIMARY KEY NOT NULL, Title nvarchar(50), Author nvarchar(30),
    Publisher nvarchar(30), 
    Subject_Code nvarchar(3),
    Shelf_Location nvarchar(7), Fiction bit(1), 
    FOREIGN KEY (Subject_Code) REFERENCES subject(SubjectCode));

在SQL中,您可以将表与自身连接。 考虑如下内容:

SELECT b2.ISBN, b2.Title, b2.Subject_Code
FROM Book b1
LEFT JOIN Book b2 ON b1.Subject_Code = b2.Subject_Code
WHERE b1.Title = "The Art of Walt Disney"

您可以使用自联接进行此操作:

select b.*
from book b join
     book bwd
     on b.subject_code = bwd.subject_code
where bdw.title = 'The Art of Walt Disney'
order by title;

该条件可以on子句或where子句中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM