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 JOINLEFT 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 ReportsToNULL.
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.cityujistěte se, že oba zaměstnanci se nachází ve stejném městě -
e.firstname <> e2.firstname AND e1.lastname <> e2.lastnamezajistit, abye1e2nejsou 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