括弧はセマンティクスを変更しません。 ONの位置 句は、結合の論理処理の順序を制御します。
最初のクエリ
SELECT Customer.Name,
Product.Desc,
Transaction.Date
FROM Product
INNER JOIN Transaction
ON Transaction.ProductID = Product.ID
INNER JOIN Customer
ON Transaction.CustomerID = Customer.ID
2番目のクエリ
(冗長な括弧は削除されました)
SELECT Customer.Name,
Product.Desc,
Transaction.Date
FROM Product
INNER JOIN Transaction
INNER JOIN Customer
ON Transaction.CustomerID = Customer.ID
ON Transaction.ProductID = Product.ID
したがって、論理的に 最初の例では、Transaction, Productに参加します 最初に発生し、次に結果として生じる仮想テーブルがCustomerに結合されます 、一方、2番目の例では、Transaction, Customerに参加します 最初に発生し、次に結果として生じる仮想テーブルがProductに結合されます
これは論理的であり、内部結合は結合性と可換性の両方であるため、実行プランに違いはない可能性があります(OPTION (FORCE ORDER)を追加しない限り、 クエリに対して)が、外部結合に対しては実行できます。
これは