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:

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

Обобщете тази публикация с: