Как работает ссылка на таблицу условий для объединения нескольких таблиц SQL? - PullRequest
0 голосов
/ 04 июня 2018

Я изучаю sql https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_join_inner2, и условие условия второго соединения дает мне сообщение:

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);

как работает Orders.ShipperID?

Я думаю, Orders здесь должна быть ссылка на таблицу ' промежуточный ', которая является результатом первой операции join?Сохраняются ли имена таблиц операндов за сценой?(мое предположение)

Спасибо!

1 Ответ

0 голосов
/ 04 июня 2018

Все таблицы и их объединения оцениваются как одно выражение.В вашем запросе нет промежуточной таблицы.

Пример в вашем вопросе может сбить с толку из-за бесполезных скобок вокруг выражения объединения.

Если написано без бесполезных скобок, это может быть понятнее:

SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM Orders 
  JOIN Customers ON Orders.CustomerID = Customers.CustomerID
  JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID;

Таким образом, таблица orders просто присоединяется к customers через customerid и к shippers таблица через столбец shipperid.

Это хороший пример того, почему бесполезные скобки очень часто не улучшают читаемость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...