繁体   English   中英

用于从子查询中选择列的 SQL 查询

[英]SQL query to select columns from subquery

我正在尝试开始使用到目前为止我不需要的子查询。 如果我有这些表:

Books
--Id (Primary Key)
--Title (string)
--GenreId (Foreign Key)

Genre
--Id (Primary Key)
--Name (string)

我知道如果我想检索 Title 和 Name,那么我可以运行这个查询:

select b.Title, g.Name from Books b
join Genre g on b.GenreId=g.Id

我想要做的是了解这和这之间的区别:

select b.Title from Books b
join (
    select g.Id, g.Name from Genre g
)
as ge
on b.GenreId=ge.Id
go

我想知道为什么第二个查询只给我来自 Books 的 Title 列而不是来自 Genre 的 Id 或 Name 列? 我的问题实际上是如何将第一个查询转换为子查询并检索相同的结果? 我想要来自书籍的标题和来自流派的名称。

第二个查询只给你标题,因为这就是你所要求的。

最外层的select描述了您获得的结果集。 其他select用于处理逻辑,但不影响返回的列。

尝试这个。

  select G.name, B.title from Books B left join Genre G On G.ID = B.GenreId

暂无
暂无

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

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