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 на сервері 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: