JOINS в SQL Server: Урок с примери
Можем да извлечем данни от повече от една таблица с помощта на израза JOIN. В SQL сървъра има основно 4 различни типа JOINS. Ще научим всички JOIN в SQL сървър с примери:
- 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
Изявлението за OUTER JOINS SQL сървър връща следното:
Причината за горния изход е, че всички редове в таблицата с такси са налични в таблицата „Студенти“, когато съответстват в колоната за прием.
ПЪЛНО ВЪНШНО СЪЕДИНЕНИЕ
Този тип обединяване връща всички редове от двете таблици с 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:






