JOINS у SQL Server: посібник із прикладами

Ми можемо отримати дані з кількох таблиць за допомогою оператора JOIN. У SQL-сервері існує в основному 4 різних типи JOIN. Ми вивчимо всі JOIN SQL-сервер з прикладами:

  • INNER JOIN/просте з'єднання
  • LEFT OUTER JOIN/LEFT JOIN
  • ПРАВЕ ЗОВНІШНЄ З'ЄДНАННЯ/ПРАВЕ З'ЄДНАННЯ
  • ПОВНЕ ПРИЄДНАННЯ

INNER JOIN

Цей тип SQL-сервера JOIN повертає рядки з усіх таблиць, у яких умова об’єднання виконується. Він приймає такий синтаксис:

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

Щоб продемонструвати це, ми використаємо наступні дві таблиці:

Таблиця учнів:

INNER JOIN

Таблиця тарифів:

INNER JOIN

Наступна команда демонструє INNER JOIN на сервері SQL на прикладі:

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

Команда повертає наступне:

INNER JOIN

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

ЗАЛИШИЛИ ЗОВНІШНЕ ПРИЄДНАННЯ

Цей тип об’єднання повертає всі рядки з лівої таблиці, а також записи в правій таблиці з відповідними значеннями. Наприклад:

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:

ПОВНЕ ПРИЄДНАННЯ