Коммутативность внутреннего соединения

Я прочитал из этого ответа (клик) следующие условные высказывания

Invoices.CustomerID=Customers.CustomerID

а также

Customers.CustomerID=Invoices.CustomerID

идентичны, потому что он дает тот же набор результатов.

Теперь моя проблема связана с коммутативностью внутреннего соединения. Я попробовал оба из следующих подходов, и они дают одинаковый набор результатов (за исключением порядка столбцов).

Customers стол первый

use MMABooks
select *
from Customers
    inner join Invoices
on Invoices.CustomerID=Customers.CustomerID
where Customers.CustomerID=10

Invoices стол первый

use MMABooks
select *
from Invoices
    inner join Customers
on Invoices.CustomerID=Customers.CustomerID
where Invoices.CustomerID=10

Вопросы

  1. Является ли внутреннее соединение коммутативным по замыслу?
  2. Есть ли лучшая практика, которая предлагает или предпочитает один подход по сравнению с другим? Я имею в виду, какой подход я должен использовать?

1 ответ

Решение

Было бы очень странно, если бы они не дали такой же результат. Вы ожидали разницу?

Лучше всего начинать с таблицы, из которой вы выбираете большинство столбцов.

Вам нужно беспокоиться о заказе, когда вы работаете с LEFT или же RIGHT JOINS,

Другие вопросы по тегам