SQL se připojí
SQL PŘIPOJTE SE
Klauzule JOIN
se používá ke spojení řádků ze dvou nebo více tabulek na základě souvisejícího sloupce mezi nimi.
Podívejme se na výběr z tabulky "Objednávky":
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
Poté se podívejte na výběr z tabulky „Zákazníci“:
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
Všimněte si, že sloupec "CustomerID" v tabulce "Objednávky" odkazuje na "CustomerID" v tabulce "Customers". Vztah mezi dvěma výše uvedenými tabulkami je sloupec "CustomerID".
Poté můžeme vytvořit následující příkaz SQL (který obsahuje
INNER JOIN
), který vybere záznamy, které mají v obou tabulkách odpovídající hodnoty:
Příklad
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;
a vytvoří něco takového:
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
Různé typy SQL JOINů
Zde jsou různé typy JOINů v SQL:
(INNER) JOIN
: Vrátí záznamy, které mají v obou tabulkách shodné hodnotyLEFT (OUTER) JOIN
: Vrátí všechny záznamy z levé tabulky a odpovídající záznamy z pravé tabulkyRIGHT (OUTER) JOIN
: Vrátí všechny záznamy z pravé tabulky a odpovídající záznamy z levé tabulkyFULL (OUTER) JOIN
: Vrátí všechny záznamy, pokud existuje shoda v levé nebo pravé tabulce