Articles

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.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, aby e1e2 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

Napsat komentář

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