结构化查询语言加入查询

时间:2017-03-21 07:28:49

标签: sql-server tsql join syntax

我是SQL新手。这是多个表的正确连接。

{{1}}

2 个答案:

答案 0 :(得分:4)

你的问题

  

这是多个表的正确连接

应该用回答...... 可能按预期工作,但这种加入方式已经过时了几个世纪。

您的方法将所有表格命名为逗号分隔。这将导致一个巨大的笛卡尔产品,每行与每一行的组合。以下WHERE子句确保您只获得所需/相关的行和列...

不知道你的结构这是一次盲目飞行,但我认为你正在寻找这样的事情:

select * 
from  [dbo].[Quotes] Q 
inner join [dbo].[QuoteLines] QL on Q.ID=QL.QuoteID 
inner join [dbo].[Invoices] I on I.QuoteID=Q.ID
inner join [dbo].[Receipts] R on R.QuoteID=Q.ID

where   QL.Amount = 336.47 
    and QL.TravelType = 'International' 
    and QL.[Type] = 'Accommodation';

在某些情况下,您可能希望将inner更改为left,而不是每一行在另一侧都有相应的行。

答案 1 :(得分:0)

Try this:- 
Select table1.ID ,table1.Name
from Table1 
inner join Table2 on Table1 .ID =Table2 .ID 
inner join Table3 on table2.ID=Table3 .ID
where table1.Name = Table3.Name