JOINS чаще всего кружит мне голову, когда я пытаюсь отличить. Забавно, как вы, кажется, понимаете их, когда изучаете их одно за другим, но к концу раунда начинается путаница.

Понимание различных соединений позволит вам выбрать лучшего «человека для работы», когда возникнет проблема; чтобы уменьшить вычислительную мощность, необходимую для выполнения запросов.

Итак, вот моя попытка решить эту проблему.

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

На этом рисунке показаны 5 основных объединений, которые имеют встроенный синтаксис в SQL. Более темные заштрихованные области показывают результаты применения соответствующих запросов.

ВНУТРЕННИЕ СОЕДИНЕНИЯ

Внутренние соединения возвращают строки из таблиц A и B, которые имеют совпадающие значения.

Синтаксис

ВЫБЕРИТЕ имена столбцов

ИЗ таблицыA

ВНУТРЕННЕЕ СОЕДИНЕНИЕ tableB

ON tableA.common_field = tableB.common_field

ЛЕВЫЕ СОЕДИНЕНИЯ

Левые соединения/левые внешние соединения возвращают строки, общие для таблицы A и таблицы B, а также несопоставленные строки из левой таблицы.

Синтаксис

ВЫБЕРИТЕ имя_столбца

ИЗ таблицыA

ЛЕВОЕ СОЕДИНЕНИЕ tableB

ON tableA.common_field = tableB.common_field

ПРАВИЛЬНЫЕ СОЕДИНЕНИЯ

Правые соединения/правые внешние соединения возвращают строки, общие для таблиц tableA и tableB, а также несопоставленные строки из правой таблицы.

Синтаксис

ВЫБЕРИТЕ имя_столбца

ИЗ таблицыA

ПРАВОЕ СОЕДИНЕНИЕ tableB

ON tableA.common_field = tableB.common_field

ПОЛНЫЕ СОЕДИНЕНИЯ

Полные соединения/полные внешние соединения возвращают все строки из обеих соединенных таблиц. Можно сказать, что это объединение левого и правого соединений.

Синтаксис

ВЫБЕРИТЕ имя_столбца

ИЗ таблицыA

ПОЛНОЕ СОЕДИНЕНИЕ tableB

ON tableA.common_field = tableB.common_field

ПОПЕРЕЧНЫЕ СОЕДИНЕНИЯ

Перекрестные соединения возвращают комбинации всех строк из каждой таблицы. Каждая строка таблицы A соединяется с каждой строкой таблицы B.

Синтаксис

ВЫБЕРИТЕ имя_столбца

ИЗ таблицыA

ПЕРЕКРЕСТНОЕ СОЕДИНЕНИЕ tableB

ON tableA.column_name = tableB.column_name

Четкое понимание этих основных соединений облегчает понимание всех других подмножеств, таких как самосоединение, полусоединение и т. д.

Сохраните этот групповой образ в своей голове!

Я надеюсь, что это тоже поможет вам в вашем путешествии по SQL!

Если вам понравилось это, СЛЕДУЙТЕ за мной на среде, чтобы узнать больше о моем контенте!