JOINS w SQL Server: samouczek z przykładami

Za pomocą instrukcji JOIN możemy pobrać dane z więcej niż jednej tabeli. Istnieją głównie 4 różne typy POŁĄCZEŃ na serwerze SQL. Nauczymy się wszystkich DOŁĄCZEŃ Serwer SQL z przykładami:

  • ZŁĄCZENIE WEWNĘTRZNE/złączenie proste
  • LEWE POŁĄCZENIE ZEWNĘTRZNE/POŁĄCZENIE LEWE
  • PRAWE POŁĄCZENIE ZEWNĘTRZNE/PRAWE POŁĄCZENIE
  • PEŁNE POŁĄCZENIE ZEWNĘTRZNE

INNER JOIN

Ten typ JOIN serwera SQL zwraca wiersze ze wszystkich tabel, w których warunek łączenia jest prawdziwy. Przyjmuje następującą składnię:

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

Aby to zademonstrować, wykorzystamy dwie poniższe tabele:

Tabela uczniów:

INNER JOIN

Tabela opłat:

INNER JOIN

Poniższe polecenie demonstruje operację INNER JOIN na serwerze SQL z przykładem:

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

Polecenie zwraca następującą wartość:

INNER JOIN

Możemy poinformować studentów, którzy uiścili opłatę. W obu tabelach wykorzystaliśmy kolumnę o wspólnych wartościach, która jest kolumną przyjęcia.

LEWE POŁĄCZENIE ZEWNĘTRZNE

Ten typ łączenia zwróci wszystkie wiersze z tabeli po lewej stronie oraz rekordy z tabeli po prawej stronie z pasującymi wartościami. Na przykład:

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

Kod zwraca następującą wartość:

LEWE POŁĄCZENIE ZEWNĘTRZNE

Rekordy bez pasujących wartości są zastępowane wartościami NULL w odpowiednich kolumnach.

PRAWE POŁĄCZENIE ZEWNĘTRZNE

Ten typ łączenia zwraca wszystkie wiersze z tabeli po prawej stronie i tylko te, które mają pasujące wartości z tabeli po lewej stronie. Na przykład:

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

Polecenie OUTER JOINS serwera SQL zwraca następujące dane:

PRAWE POŁĄCZENIE ZEWNĘTRZNE

Powodem powyższego wyniku jest to, że wszystkie wiersze w tabeli Opłaty są dostępne w tabeli Studenci, jeśli są dopasowane w kolumnie Wstęp.

PEŁNE POŁĄCZENIE ZEWNĘTRZNE

Ten typ łączenia zwraca wszystkie wiersze z obu tabel z wartościami NULL, w których warunek JOIN nie jest spełniony. Na przykład:

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

Kod zwraca następujący wynik dla zapytań FULL OUTER JOINS w SQL:

PEŁNE POŁĄCZENIE ZEWNĘTRZNE