有人能详细说明这两者之间会有什么不同吗?
SELECT *
FROM dbo.UserProducts AS UP
INNER JOIN dbo.Products AS P
ON P.ProductID = UP.ProductID
INNER JOIN dbo.Industry AS I
ON I.IndustryCode = P.IndustryCode
SELECT *
FROM dbo.UserProducts AS UP
INNER JOIN dbo.Products AS P
INNER JOIN dbo.Industry AS I
ON I.IndustryCode = P.IndustryCode
ON P.ProductID = UP.ProductID
我已经看到MSDN上解释了第二个选项,但是我再也找不到它了,我认为它是使用LEFT JOINS。
答案 0 :(得分:3)
grammar for FROM
解释了这一点。
语法为FROM { <table_source> }
。
<table_source>
可以是几件事之一,包括<joined_table>
。
<joined_table>
可以包含:
<table_source> <join_type> <table_source> ON <search_condition>
因此,<table_source>
可以是<table_source>
的加入,{{1}}本身可以是加入等。
您的第一个例子是&#34; UserProducts,加入产品;和产品加入了Industry&#34;。
第二个是&#34; UserProducts,加入(产品和行业联合在一起)&#34;
答案 1 :(得分:1)
从逻辑的角度来看,两个例子之间没有什么不同,一个更容易阅读。
有时将所有条件放在所有连接下面实际上是有意义的:
SELECT *
FROM table1 a
LEFT JOIN table2 b
LEFT JOIN table3 c
ON a.col1 = c.col1
ON b.ID = c.ID
但总的来说,当标准紧跟JOIN