JOINS в SQL Server: руководство с примерами

Мы можем получить данные из нескольких таблиц, используя оператор JOIN. В SQL-сервере в основном существует 4 различных типа JOINS. Мы изучим все JOINS в SQL сервер с примерами:

  • INNER JOIN/простое соединение
  • ЛЕВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ/ЛЕВОЕ СОЕДИНЕНИЕ
  • ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ/ПРАВОЕ СОЕДИНЕНИЕ
  • ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

INNER JOIN

Этот тип JOIN SQL-сервера возвращает строки из всех таблиц, в которых условие соединения истинно. Это требует следующегоwing синтаксис:

SELECT columns
FROM table_1 
INNER JOIN table_2
ON table_1.column = table_2.column;

Мы будем использовать следующееwing две таблицы, чтобы продемонстрировать это:

Таблица студентов:

INNER JOIN

Таблица комиссий:

INNER JOIN

Фоллоwing Команда демонстрирует INNER JOIN на SQL-сервере на примере:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
INNER JOIN Fee
ON Students.admission = Fee.admission

Команда возвращает следующееwing:

INNER JOIN

Мы можем сообщить об этом студентам, которые заплатили взнос. Мы использовали столбец с общими значениями в обеих таблицах, который является столбцом допуска.

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

Этот тип соединения вернет все строки из левой таблицы, а также записи в правой таблице с совпадающими значениями. Например:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
LEFT OUTER JOIN Fee
ON Students.admission = Fee.admission

Код возвращает следующееwing:

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

Записи без совпадающих значений заменяются значениями 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 возвращает следующее:wing:

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

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

ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ

Этот тип соединения возвращает все строки из обеих таблиц со значениями NULL, где условие JOIN неверно. Например:

SELECT Students.admission, Students.firstName, Students.lastName, Fee.amount_paid
FROM Students
FULL OUTER JOIN Fee
ON Students.admission = Fee.admission

Код возвращает следующееwing результат для запросов FULL OUTER JOINS в SQL:

ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ