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.
Žádné komentáře:
Okomentovat