SQL OUTER JOIN (Čeština)
Shrnutí: v tomto kurzu se naučíte, jak používat vnější připojení SQL, včetně vnějšího levého spojení, pravého vnějšího připojení a úplné vnější spojení.
Pokud se chcete dozvědět více o SQL INNER JOIN, podívejte se na výukový program SQL INNER JOIN.
Existují tři druhy VNĚJŠÍHO PŘIPOJENÍ: levé vnější spojení, pravé vnější spojení a úplné vnější spojení. Prozkoumejme každý druh spojení podrobněji.
VNĚJŠÍ VSTUP SQL – levé vnější spojení
Levé vnější spojení SQL je také známé jako levé levé připojení SQL. Předpokládejme, že chceme spojit dvě tabulky: A a B. Vnější vnější spojení SQL vrátí všechny řádky v levé tabulce (A) a všechny odpovídající řádky nalezené v pravé tabulce (B). To znamená, že výsledek levého spojení SQL vždy obsahuje řádky v levé tabulce.
Následující text ilustruje vnější levou syntaxi SQL spojování 2 tabulek: table_A a table_B:
1
2
3
4
|
VYBRAT sloupec1, sloupec2 …
Z tabulky_A
VLEVO SE PŘIPOJIT k tabulce_B NA join_condition
KDE row_condition
|
SQL OUTER JOIN – příklad vnějšího připojení vlevo
Následující dotaz vybere všechny zákazníky a jejich objednávky:
1
2
3
4
5
6
|
VYBRAT c.customerid,
c.companyName,
orderid
FROM customers c
LEFT JOIN commands o ON o.customerid = c .customerid
ORDER BY orderid
|
Jsou uvedeny všechny řádky v tabulce zákazníků. V případě, že v tabulce objednávek nebyl nalezen žádný odpovídající řádek pro řádek v tabulce zákazníků, sloupec orderid v tabulce objednávek je naplněn hodnotami NULL.
Můžeme použít Vennův diagram k vizualizaci toho, jak SQL LEFT OUTER JOIN funguje.
SQL OUTER JOIN – pravé vnější spojení
SQL vnější vnější spojení vrátí všechny řádky v pravé tabulce a všechny odpovídající řádky nalezené v levé tabulce. Syntaxe pravého vnějšího spojení SQL je následující:
1
2
3
4
|
VYBRAT sloupec1, sloupec2 …
OD table_A
SPRÁVNÉ PŘIPOJENÍ table_B NA join_condition
WHERE row_condition
|
Pravé vnější spojení SQL je také známé jako SQL pravé spojení.
SQL OUTER JOIN – příklad pravého vnějšího spojení
Následující příklad ukazuje Pravé vnější spojení SQL:
1
2
3
4
5
6
|
SELECT c.customerid,
c.firmaJméno,
orderi d
OD ZÁKAZŮ c
SPRÁVNÉ PŘIPOJENÍ objednávek o ON o.customerid = c.customerid
OBJEDNAT PODLE objednacího čísla
|
Dotaz vrátí všechny řádky v tabulce objednávek a všechny odpovídající řádky nalezené v tabulce zákazníků.
Následující Vennův diagram ukazuje, jak funguje pravé vnější spojení SQL:
SQL OUTER JOIN – úplné vnější spojení
Syntaxe úplného vnějšího spojení SQL je následující:
1
2
3
4
|
VYBRAT sloupec1, sloupec2 …
FROM table_A
FULL OUTER JOIN table_B ON join_condition
WHERE row_condition
|
Vrátí úplné vnější spojení SQL:
- vše ro ws v levé tabulce table_A.
- všechny řádky v pravé tabulce table_B.
- a všechny odpovídající řádky v obou tabulkách.
Nějaká databáze systémy správy nepodporují úplnou syntaxi vnějšího spojení SQL, např. MySQL. Protože SQL úplné vnější spojení vrací sadu výsledků, která je kombinovaným výsledkem jak levého spojení SQL, tak i pravého spojení SQL.Proto můžete snadno napodobit úplné vnější spojení SQL pomocí levého spojení SQL a pravého spojení SQL s operátorem UNION následujícím způsobem:
SQL OUTER JOIN – příklad úplného vnějšího spojení
Následující dotaz ukazuje úplné vnější spojení SQL:
1
2
3
4
5
6
|
SELECT c.customerid,
c.companyName,
orderid
OD zákazníků c
FULL OUTER JOIN objednávky o ON o.customerid = c.customerid
ORDER BY orderid
|
Následující Vennův diagram ukazuje, jak funguje úplné vnější spojení SQL:
V tomto výukovém programu jste se dozvěděli o různé SQL OUTER JOIN včetně SQL left join, SQL right join a SQL full outer join.
- Byl tento výukový program užitečný?
- Ano Ne