Нечетный синтаксис и инкапсуляция INNER JOIN

Обычно я довольно хорошо разбираюсь в JOINS, но это в новинку.

Предположим, три таблицы (классический случай двух таблиц и третьей, таблицы компоновщика):

Customer  Product  Transaction
--------  -------  -----------
ID        ID       CustomerID
Name      Desc     ProductID
          Cost     Date

(Упрощенно, я не могу воспроизвести реальную структуру, это не мой код.)

Обычно, чтобы получить таблица «кто что и когда купил», я бы сделал следующее:

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

Но мне представили вот это:

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

Что это? Просто еще один синтаксис или трюк с производительностью?

(Это на SQLServer, к сведению, но, предположительно, это может быть применено к другим ...)

6
задан MPelletier 9 November 2011 в 16:46
поделиться