SQLite Self-Join
shrnutí: v tomto tutoriálu se dozvíte o speciálním typu join s názvem SQLite self-join, který vám umožní připojit tabulku k sobě.
Všimněte si, že byste měli být obeznámeni s INNER JOIN
LEFT JOIN
doložek, než jít dopředu s tímto tutorial.
Úvod do SQLite self-join
self-join je zvláštní druh spojení, které vám umožní připojit tabulky k sobě buď pomocí LEFT JOIN
nebo INNER JOIN
klauzule. Pomocí self-join vytvoříte sadu výsledků, která spojí řádky s ostatními řádky ve stejné tabulce.
protože v dotazu nemůžete odkazovat na stejnou tabulku více než jednu, musíte použít alias tabulky, abyste při použití self-join přiřadili tabulce jiný název.
self-join porovnává hodnoty stejných nebo různých sloupců ve stejné tabulce. Pouze jedna tabulka je zapojena do self-join.
často používáte self-join k dotazování vztahu rodiče / dítě uloženého v tabulce nebo k získání běžících součtů.
SQLite self-join examples
použijeme employees
tabulku v ukázkové databázi pro demonstraci.
employees
tabulka ukládá nejen zaměstnanci, ale i organizační údaje. Sloupec ReportsTo
určuje vztah hlášení mezi zaměstnanci.
Pokud zaměstnanec zprávy k manager, hodnota ReportsTo
sloupce zaměstnance řádek je roven hodnotě EmployeeId
sloupce manažera řadě. V případě, že se zaměstnanec nikomu nehlásí, je sloupec ReportsTo
NULL
.
Chcete – li získat informace o tom, kdo je přímou zprávou, použijte následující příkaz:
Vyzkoušet
prohlášení používá INNER JOIN
klauzule join employees
sám na sebe. Tabulka employees
má dvě role: zaměstnance a manažery.
Protože jsme použili INNER JOIN
klauzule join employees
tabulky k sobě, výsledek nastavení nemá na řádku, jejíž manažer sloupec obsahuje NULL
hodnota.
Všimněte si, že operátor zřetězení ||
zřetězí více řetězců do jednoho řetězce. V příkladu použijeme operátor zřetězení k úplným jménům zaměstnanců zřetězením křestního jména, mezery a příjmení.
V případě, že chcete dotaz CEO, kdo se nehlásí k nikomu, budete muset změnit na INNER JOIN
klauzule LEFT JOIN
klauzule v dotazu výše.
Andrew Adams
je generální ŘEDITEL, protože on nehlásí nikomu.
můžete použít self-join technika, aby najít zaměstnance, který se nachází ve stejném městě jako následující dotaz:
Vyzkoušet
připojit podmínku, má dva výrazy:
-
e1.city = e2.city
ujistěte se, že oba zaměstnanci se nachází ve stejném městě -
e.firstname <> e2.firstname AND e1.lastname <> e2.lastname
zajistit, abye1
e2
nejsou stejné, zaměstnanec s předpokladem, že tam nejsou zaměstnanci, kteří mají stejné křestní jméno a příjmení.
v tomto tutoriálu jsme vám ukázali, jak používat techniku SQLite self-join pro připojení tabulky k sobě.
- byl tento návod užitečný ?
- YesNo