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:
Tabela opłat:
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ść:
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ść:
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:
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: