Shrnutí: v tomto výukovém programu se naučíte používat server SQL FULL OUTER JOIN
k dotazování na data ze dvou nebo více tabulek.
Úvod do úplného vnějšího připojení k serveru SQL Server
FULL OUTER JOIN
vrací sadu výsledků, která obsahuje řádky z levé i pravé tabulky. Pokud pro řádek v levé tabulce neexistují žádné odpovídající řádky, sloupce pravé tabulky budou mít hodnoty null. Podobně, pokud pro řádek v pravé tabulce neexistují žádné odpovídající řádky, sloupec levé tabulky bude mít hodnoty null.
Následující text ukazuje syntaxi FULL OUTER JOIN
při spojování dvou tabulek T1
a T2
:
Code language: SQL (Structured Query Language) (sql)
Klíčové slovo OUTER
je volitelné, takže jej můžete přeskočit, jak je znázorněno v následujícím dotazu:
Code language: SQL (Structured Query Language) (sql)
V této syntaxi :
- Nejprve v klauzuli
FROM
zadejte levou tabulkuT1
. - Zadruhé, zadejte pravou tabulku
T2
a predikát spojení.
Následující Vennův diagram ilustruje FULL OUTER JOIN
ze dvou sad výsledků:
Příklad úplného vnějšího připojení k serveru SQL Server
Pojďme si připravit ukázkovou tabulku pro demonstraci úplného vnějšího spojení.
Nejprve vytvořte nový schéma s názvem pm
, které znamená správu projektů.
Code language: SQL (Structured Query Language) (sql)
Dále vytvořte nové tabulky s názvem projects
a members
ve schématu pm
:
Předpokládejme, že se může účastnit pouze každý člen v jednom projektu a každý projekt má nula nebo více členů. Pokud je projekt ve fázi nápadu, není mu přiřazen žádný člen.
Poté vložte několik řádků do projects
a members
tabulky:
Poté vyhledejte data z projects
a members
tabulek:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Nakonec použijte FULL OUTER JOIN
k dotazování na data z projects
a members
tabulek:
Zde je výstup:
V tomto příkladu dotaz vrátil členy, kteří se účastní projektů, členů, kteří se neúčastní žádných projektů, a projektů, které nemají žádné členy.
Chcete-li najít členy, kteří se neúčastní jakýkoli projekt a projekty Pokud nemáte žádné členy, přidáte do výše uvedeného dotazu klauzuli WHERE
:
Následující obrázek ukazuje výstup:
Jak je jasně vidět na výstupu, Jack Daniel
se neúčastní žádného projektu a Develop Mobile Sales Platform
nemá žádné členy.
V tomto výukovém programu jste se naučili používat SQL Server připojit k dotazu na data ze dvou nebo více tabulek.