SQL RIGHT JOIN: Rozšiřující příklad pro mysql

 

Tutoriál: Vysvětlení RIGHT JOIN na příkladu v papírnictví

Úvod: V SQL je RIGHT JOIN jedním z typů spojení tabulek, který umožňuje kombinovat data z více tabulek na základě odpovídajících hodnot v určených sloupcích. V tomto tutoriálu se podíváme na RIGHT JOIN na příkladu z papírnictví s rozšířeným seznamem produktů.

Příkladový úkol: Představme si, že máme tabulku "zákazníci" obsahující informace o našich zákaznících a tabulku "nákupy" obsahující informace o jejich nákupech v papírnictví. Chceme získat seznam všech zákazníků a jejich nákupů, včetně těch, kteří ještě žádné nákupy neudělali.

Struktura tabulek:

Tabulka "zákazníci":

diff
+----+-----------+--------------+ | id | jméno | adresa | +----+-----------+--------------+ | 1 | Alice | Praha | | 2 | Bob | Brno | | 3 | Charlie | Ostrava | +----+-----------+--------------+

Tabulka "nákupy":

diff
+----+-------------+-----------+ | id | customer_id | produkt | +----+-------------+-----------+ | 1 | 1 | nůžky | | 2 | 1 | papír A4 | | 3 | 1 | papír A3 | | 4 | 2 | tužka | | 5 | 2 | pero | | 6 | 2 | papír A5 | | 7 | 3 | papír A5 | | 8 | 3 | papír A3 | | 9 | 3 | šedý úhel | | 10 | 3 | černý úhel| | 11 | 3 | hnědá barva | | 12 | 3 | černá barva | | 13 | 3 | štětce | +----+-------------+-----------+

Použití RIGHT JOIN: RIGHT JOIN umožňuje zahrnout všechny záznamy z pravé tabulky (v našem případě "nákupy") a odpovídající záznamy z levé tabulky ("zákazníci"). Dokud jsou v pravé tabulce záznamy, které nemají odpovídající záznamy v levé tabulce, budou tyto záznamy zahrnuty výsledku spojení.

SQL dotaz s RIGHT JOIN:

sql
SELECT z.id, z.jméno, n.id AS nákup_id, n.produkt FROM zákazníci z RIGHT JOIN nákupy n ON z.id = n.customer_id;

Výsledek dotazu:

+----+-----------+---------+-------------+ | id | jméno | nákup_id| produkt | +----+-----------+---------+-------------+ | 1 | Alice | 1 | nůžky | | 1 | Alice | 2 | papír A4 | | 1 | Alice | 3 | papír A3 | | 2 | Bob | 4 | tužka | | 2 | Bob | 5 | pero | | 2 | Bob | 6 | papír A5 | | 3 | Charlie | 7 | papír A5 | | 3 | Charlie | 8 | papír A3 | | 3 | Charlie | 9 | šedý úhel | | 3 | Charlie | 10 | černý úhel| | 3 | Charlie | 11 | hnědá barva | | 3 | Charlie | 12 | černá barva | | 3 | Charlie | 13 | štětce | +----+-----------+---------+-------------+

Vysvětlení: Zde vidíme, že všechny zákazníky mají zaznamenané své nákupy, ať už to jsou nůžky, papír, tužka nebo barvy. Charlie má nejvíce položek v nákupním seznamu, včetně různých typů papírů a barev.

Komentáře

Oblíbené příspěvky