繁体   English   中英

Select 来自子查询的列

[英]Select A column from Subquery

我有一个如下查询

Select Student_ID, Name, School
From Student S
Where S.Student_ID in ( select associate_id from Details D)

output 计数如期而至

但是现在我有一个新要求,即从 Details 表中获取数据中的附加列(D.Subject)

Select S.Student_ID, S.Name, S.School, D.Subject
From Student S
Where  S.Student_ID in ( select associate_id from Details D)

当我试图通过使用下面的连接来实现上述目标时,计数不匹配。 我尝试了左外连接和内连接,但计数不正确。

Select S.Student_ID, S.Name, S.School, D.Subject
From Student S
Left outer join Details D on S.Student_ID = D.associate_id
Where S.Student_ID in ( select associate_id from Details D)

请让我知道如何实现这一目标

由于我们没有样本数据,我试图根据你的问题把一些东西放在一起

问题在于不同的计数。 您应该在 select 中使用不同的值。 真的不需要 where 条件,因为这将包含在您的加入条件中。

Select distinct S.Student_ID, S.Name, S.School, D.Subject
From Student S join Details D on S.Student_ID = D.associate_id;

这将为您提供独特的计数。 因为这些表之间可能有更多的连接条件,而不仅仅是列 student_id 到 associate_id

例如-如果我举下面的例子

学生表 详细信息 行内查询会给你一个不同的计数然后内连接。

因此,您要么找到正确的连接条件,要么区分这些值以保持密切联系。

暂无
暂无

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

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