需要使用嵌套联接的帮助

时间:2020-02-10 21:24:27

标签: sql sql-server

我需要将ID#的{​​{1}}字段连接到tableA的{​​{1}}字段,以便可以将{{1}的ID#字段加入}到tableB中的NAME字段。当前正在使用CTE,我想在不需要CTE的情况下完成此任务。

当前正在做:

tableB

我假设我可以通过嵌套联接执行相同的操作?

4 个答案:

答案 0 :(得分:0)

将表A中的ID#字段连接到表B中的ID#字段,这样我就可以将表B中的NAME字段连接到表C中的NAME字段。

为什么要使用CTE?只需将JOIN链接起来:

SELECT . . .   -- whatever you want here
FROM tableA a JOIN
     tableB b  
     ON a.ID_REF# = b.ID_REF# JOIN
     tableC c
     ON b.Name = c.Name;

答案 1 :(得分:0)

实际上,您不需要CTE-您可以加入两次。根据您的问题陈述,应该是:

select c.name
from tableC c
inner join tableB b on b.name = c.name
inner join tableA a on a.id# = b.id#

答案 2 :(得分:0)

内部连接输出相同的结果,而不管连接的顺序如何(a-> b-> c,c-> b-> a)。另请注意,不带任何关键字的默认联接将为inner join

所以您可以这样做(c-> a-> b)

select ...
from tableC c
join tableB b on b.name = c.name
join tableA a on a.ID_REF# = b.ID_REF#

或这个(a-> b-> c):

select ...
from tableA a
join tableB b on a.ID_REF# = b.ID_REF#
join tableC c on b.name = c.name

答案 3 :(得分:0)

{{1}}