JOINS v SQL Server: Kurz s příklady

Pomocí příkazu JOIN můžeme načíst data z více než jedné tabulky. Na SQL serveru jsou hlavně 4 různé typy JOINS. Naučíme se všechny JOINS in sqlserver s příklady:

  • INNER JOIN/jednoduché spojení
  • LEFT OUTER JOIN/LEFT JOIN
  • PRAVÉ VNĚJŠÍ SPOJENÍ/PRAVÉ SPOJENÍ
  • ÚPLNÉ VNĚJŠÍ PŘIPOJENÍ

INNER JOIN

Tento typ SQL serveru JOIN vrací řádky ze všech tabulek, ve kterých je podmínka spojení pravdivá. Vyžaduje následující syntaxi:

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

K tomu použijeme následující dvě tabulky:

Tabulka studentů:

INNER JOIN

Tabulka poplatků:

INNER JOIN

Následující příkaz demonstruje INNER JOIN na SQL serveru s příkladem:

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

Příkaz vrátí následující:

INNER JOIN

Můžeme říct studentům, kteří zaplatili svůj poplatek. Použili jsme sloupec se společnými hodnotami v obou tabulkách, což je sloupec přijetí.

LEVÁ VNĚJŠÍ SPOJENÍ

Tento typ spojení vrátí všechny řádky z levé tabulky plus záznamy v pravé tabulce se shodnými hodnotami. Například:

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

Kód vrátí následující:

LEVÁ VNĚJŠÍ SPOJENÍ

Záznamy bez odpovídajících hodnot jsou v příslušných sloupcích nahrazeny hodnotami NULL.

PRAVÝ VNĚJŠÍ SPOJ

Tento typ spojení vrátí všechny řádky z tabulky napravo a pouze ty, které mají odpovídající hodnoty v tabulce nalevo. Například:

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

Příkaz pro OUTER JOINS SQL server vrací následující:

PRAVÝ VNĚJŠÍ SPOJ

Důvodem výše uvedeného výstupu je, že všechny řádky v tabulce Poplatek jsou dostupné v tabulce Studenti, když jsou spárovány ve sloupci přijetí.

ÚPLNÉ VNĚJŠÍ PŘIPOJENÍ

Tento typ spojení vrátí všechny řádky z obou tabulek s hodnotami NULL, kde podmínka JOIN není pravdivá. Například:

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

Kód vrátí následující výsledek pro dotazy FULL OUTER JOINS SQL:

ÚPLNÉ VNĚJŠÍ PŘIPOJENÍ