我应该在多个表上使用sql JOIN关键字进行复杂连接吗?

我有以下要求:
select * 
    from tbA A,tbB B,tbC C,tbD D
where 
    A.ID=B.ID and B.ID2= C.ID2 and A.ID=D.ID and C.ID3=D.ID3 and B.ID4=D.ID4
and
    A.Foo='Foo'

我听到几次这个连接语法被折旧,我应该使用’JOIN’关键字.

如何在这一个复杂的连接(多个表连接在不同的表上的多个列)上这样做?你认为这种最佳做法在这里仍然适用吗?

解决方法

这是一个味道的问题,但我更喜欢JOIN关键字.它使逻辑更清晰,更符合随之而来的LEFT OUTER JOIN语法.请注意,您也可以使用与JOIN同义的INNER JOIN.

语法是

a JOIN b
    ON expression relating b to all of the tables before

b可以是一个连接本身.对于内部连接并不重要,但对于外部可以控制连接的顺序,如下所示:

select * from
   a left join
      d join c
      on d.i = c.i
   on a.k = d.k

这里一个是连接到d和c之间的内部连接.

这是您的查询

select * 
    from tbA A
    join tbB B on A.ID = B.ID
    join tbC C on B.ID2 = C.ID2
    join tbD D on A.ID = D.ID and C.ID3 = D.ID3 and B.ID4 = D.ID4
where 
    A.Foo='Foo'

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...