JOINS в SQL Server: руководство с примерами
Мы можем получить данные из нескольких таблиц, используя оператор JOIN. В SQL-сервере в основном существует 4 различных типа JOINS. Мы изучим все JOINS в SQL сервер с примерами:
- INNER JOIN/простое соединение
- ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ/ЛЕВОЕ СОЕДИНЕНИЕ
- ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ/ПРАВОЕ СОЕДИНЕНИЕ
- ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
INNER JOIN
Этот тип JOIN SQL-сервера возвращает строки из всех таблиц, в которых условие соединения истинно. Он принимает следующий синтаксис:
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Чтобы продемонстрировать это, мы будем использовать следующие две таблицы:
Таблица студентов:
Таблица комиссий:
Следующая команда демонстрирует INNER JOIN на SQL-сервере на примере:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students INNER JOIN Fee ON Students.admission = Fee.admission
Команда возвращает следующее:
Мы можем сообщить об этом студентам, которые заплатили взнос. Мы использовали столбец с общими значениями в обеих таблицах, который является столбцом допуска.
ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
Этот тип соединения вернет все строки из левой таблицы, а также записи в правой таблице с совпадающими значениями. Например:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students LEFT OUTER JOIN Fee ON Students.admission = Fee.admission
Код возвращает следующее:
Записи без совпадающих значений заменяются значениями NULL в соответствующих столбцах.
ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
Этот тип соединения возвращает все строки из правой таблицы и только те, которые имеют совпадающие значения в левой таблице. Например:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students RIGHT OUTER JOIN Fee ON Students.admission = Fee.admission
Оператор SQL-сервера OUTER JOINS возвращает следующее:
Причина приведенного выше вывода заключается в том, что все строки в таблице «Сборы» доступны в таблице «Студенты» при сопоставлении в столбце «Поступление».
ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
Этот тип соединения возвращает все строки из обеих таблиц со значениями NULL, где условие JOIN неверно. Например:
SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid FROM Students FULL OUTER JOIN Fee ON Students.admission = Fee.admission
Код возвращает следующий результат для запросов FULL OUTER JOINS в SQL:






