#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. Я думаю, это зависит от ситуации.