Эффективная структура набора результатов в случае Inner Join для более чем двух таблиц - PullRequest
0 голосов
/ 04 мая 2011

Я просматривал эту ссылку , чтобы посмотреть, как будет выглядеть эффективный набор результатов, если мы объединим (внутренние / внешние) две таблицы.

Мне было просто любопытно узнать, как выглядит набор результатов: если мы выполним внутреннее / внешнее объединение для более чем двух таблиц?

Допустим, у меня есть три таблицы:

 1. USERS
 2. ADDRESS (Store User's address contains Foreign Key USERS.USER_ID)
 3. ITEMS (Contains Items that user sold contains foreign key USERS.USER_ID)

Теперь, если я напишу SQL:

SELECT ... FROM USERS users INNER JOIN ADDRESS address ON users.USER_ID = address.USER_ID
                            INNER JOIN ITEMS items ON users.USER_ID = items.USER_ID WHERE....

Как будет выглядеть эффективный набор результатов? Создает ли БД два отдельных набора результатов, относящихся к каждому условию JOIN, или будет один набор результатов, объединяющий все JOINS? Когда я говорю ResultSet, я имею в виду, как выглядит эффективная структура БД (как в приведенной выше ссылке).

1 Ответ

0 голосов
/ 14 мая 2011

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

Внутреннее объединение: - Совпадающие строки двух или более таблиц

ВЫБРАТЬ ... ИЗ ПОЛЬЗОВАТЕЛЕЙ пользователей ВНУТРЕННИЙ ОБЪЕДИНЕНИЕ АДРЕС адресON users.USER_ID = address.USER_ID INNER Присоединяйтесь к элементам позиций ON users.USER_ID = items.USER_ID WHERE ....

В этом утверждении говорится: «ВЫБРАТЬ ... ИЗ ПОЛЬЗОВАТЕЛЕЙ пользователей ВНУТРЕННИЙ ОБЪЕДИНИТЕ АДРЕС адрес на пользователях.USER_ID = address.USER_ID "дает несколько строк с указанным фильтром.

ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПУНКТОВ элементы ВКЛЮЧЕНЫ. Users.USER_ID = items.USER_ID WHERE ....: - оператор добавляет столбцы таблицы [ITEMS] суказанные критерии "users.USER_ID = items.USER_ID"

Внешнее объединение: - Различные строки таблицы означают, что в таблице не найдено ни одной строки.

Два типа внешнего внешнего правого соединения: -Несоответствующий ряд правой таблицы слева Внешний: -Не согласованный ряд правой таблицы

...