Práce s SQL Server Outer Joins

v SQL Server, někdy je nutné získat, kromě odpovídajících řádků, bezkonkurenční řádky z jedné nebo obou tabulek. Taková operace se nazývá vnější spojení.

Příklady 1 a 2 ukazují rozdíl mezi přírodní připojit a odpovídající vnější spojení. (Všechny příklady v této části používají tabulku employee_enh.,)

PŘÍKLAD 1

Získat podrobné informace o všech zaměstnanců, včetně umístění jejich oddělení, kteří žijí a pracují ve stejném městě:

výsledek je:

Příklad 1 používá přírodní připojit se zobrazí výsledek sada řádků. Pokud byste chtěli znát všechny ostatní stávající životní místa zaměstnanců, musíte použít (levý) vnější spoj. To se nazývá levé vnější spojení, protože všechny řádky z tabulky na levé straně provozovatele se vrátil, zda mají nebo nemají odpovídající řádek v tabulce na pravé straně., Jinými slovy, pokud neexistují žádné odpovídající řádky v tabulce na pravé straně, vnější spojení bude ještě vrátí řádek z tabulky na levé straně, s NULL ve všech sloupcích z druhé tabulky (viz Příklad 2). Databázový stroj používá operátor levý vnější spoj k určení levého vnějšího spojení.

pravé vnější spojení je podobné, ale vrací všechny řádky tabulky vpravo od symbolu. Databázový stroj používá operátorský pravý vnější spoj k určení pravého vnějšího spojení.,

PŘÍKLAD 2

Získat podrobné informace o všech zaměstnanců, včetně umístění jejich oddělení, pro všechny města, který jsou buď na místě, nebo pouze oba životní a pracovní místa zaměstnanců:

výsledek je:

Jak můžete vidět, když není tam žádný odpovídající řádek v tabulce na pravé straně (oddělení, v tomto případě), levé vnější spojení stále vrací řádky z tabulky na levé straně (employee_enh), a sloupce z jiné tabulky jsou vyplněny NULL hodnotami., Příklad 3 ukazuje použití operace pravého vnějšího spoje.

PŘÍKLAD 3

Získat úplné informace o všech odděleních, stejně jako všech živých míst jejich zaměstnanců, pro všechna města, která jsou buď umístění, oddělení nebo životní a pracovní místo zaměstnanec:

výsledek je:

kromě levé a pravé vnější spojení, tam je také plné vnější spojení, které je definováno jako spojení levé a pravé vnější spojení. Jinými slovy, všechny řádky z obou tabulek jsou uvedeny v sadě výsledků., Pokud v jedné z tabulek není odpovídající řádek, jeho sloupce jsou vráceny s nulovými hodnotami. Tato operace je zadána pomocí úplného vnějšího spojovacího operátora.

každá operace vnějšího spojení může být simulována pomocí operátora unie plus funkce neexistuje. Příklad 4 odpovídá příkladu s levým vnějším spojením (příklad 2).,

PŘÍKLAD 4

Získat podrobné informace o všech zaměstnanců, včetně umístění jejich oddělení, pro všechny města, který jsou buď na místě, nebo pouze oba životní a pracovní místa zaměstnanců:

první SELECT v unii určuje přirozené spojení tabulek employee_enh a oddělení se připojit sloupce bydliště a umístění. Toto výběrové prohlášení načte všechna města, která jsou současně obytnými místy a pracovními místy každého zaměstnance., Druhý příkaz SELECT v Unii načte navíc všechny řádky z tabulky employee_enh, které neodpovídají stavu v přirozeném spojení.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *