V TOMTO TUTORIALU PROVEDEME DOTAZ NA CENU OVOCE PRVNÍ JAKOSTI.
Úvod
V tomto tutoriálu se naučíte používat LEFT JOIN v SQL pro spojování dat z různých tabulek. Ukážeme si, jak LEFT JOIN funguje na konkrétním příkladu spojení tabulek "ovoce" a "ceny" s ohledem na různé jakosti ovoce.
Příkladový úkol
Předpokládejme, že máme dvě tabulky v naší databázi:
- Tabulka "ovoce", která obsahuje informace o různých typech ovoce a jejich kvalitě.
- Tabulka "ceny", která obsahuje informace o cenách různých druhů ovoce v závislosti na jejich kvalitě.
Naším úkolem je spojit tyto dvě tabulky pomocí LEFT JOIN a získat všechny záznamy o ovoce první jakosti a jejich ceny, pokud jsou k dispozici.
Kód k provedení
Nejprve si připravíme obě tabulky:
sql
CREATE TABLE ovoce (
id INT PRIMARY KEY,
fruit VARCHAR(50),
quality VARCHAR(10)
);
CREATE TABLE ceny (
fruit VARCHAR(50),
quality VARCHAR(10),
price DECIMAL(10,2)
);
INSERT INTO ovoce (id, fruit, quality)
VALUES (1, 'Jablko', 'I'),
(2, 'Jablko', 'II'),
(3, 'Hruška', 'I'),
(4, 'Hruška', 'II'),
(5, 'Hruška', 'III'),
(6, 'Třešeň', 'I');
INSERT INTO ceny (fruit, quality, price)
VALUES ('Jablko', 'I', 10.00),
('Jablko', 'II', 8.00),
('Hruška', 'I', 12.00),
('Hruška', 'II', 9.00),
('Hruška', 'III', 7.00),
('Třešeň', 'I', 15.00);
Nyní provedeme LEFT JOIN mezi tabulkami "ovoce" a "ceny":
sql
SELECT o.id, o.fruit, o.quality, c.price
FROM ovoce o
LEFT JOIN ceny c ON o.fruit = c.fruit AND o.quality = c.quality
WHERE o.quality = 'I';
Výsledek
Výsledkem bude seznam ovoce první jakosti a jejich ceny, pokud jsou k dispozici v tabulce "ceny":
+----+---------+---------+-------+
| id | fruit | quality | price |
+----+---------+---------+-------+
| 1 | Jablko | I | 10.00|
| 3 | Hruška | I | 12.00|
| 6 | Třešeň | I | 15.00|
+----+---------+---------+-------+
Závěr
LEFT JOIN je užitečný nástroj pro spojování dat z různých tabulek v SQL. V tomto tutoriálu jsme ukázali, jak použít LEFT JOIN k získání všech záznamů z jedné tabulky a případně odpovídajících záznamů z druhé tabulky, a to i tehdy, když odpovídající záznamy chybí.
Žádné komentáře:
Okomentovat