Эффективная структура результирующего набора в случае внутреннего объединения более чем в двух таблицах

#sql #database #join #resultset

#sql #База данных #Присоединиться #результирующий набор

Вопрос:

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

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

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

  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....
  

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

Ответ №1:

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

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

ВЫБЕРИТЕ … ОТ ПОЛЬЗОВАТЕЛЕЙ АДРЕС ВНУТРЕННЕГО ОБЪЕДИНЕНИЯ пользователей адрес В users.USER_ID = address.USER_ID ЭЛЕМЕНТЫ ВНУТРЕННЕГО ОБЪЕДИНЕНИЯ элементы В users.USER_ID = items.ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ, ГДЕ….

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

ЭЛЕМЕНТЫ ВНУТРЕННЕГО ОБЪЕДИНЕНИЯ ДЛЯ пользователей.USER_ID = элементы.USER_ID ГДЕ…. :- инструкция добавляет столбцы таблицы [ЭЛЕМЕНТЫ] с указанными критериями «users.USER_ID = элементы.USER_ID»

Внешнее соединение: — Разные строки таблицы означают, что в таблице нет совпадающих строк.

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

Комментарии:

1. Спасибо. Я знаю это. То, что я пытаюсь выяснить, является эффективной структурой, когда мы объединяем более 2 таблиц с помощью внутреннего / внешнего соединения?

2. Я думаю, это зависит от ситуации.