Dobrý den,
bohužel z Vašeho popisu tabulek i SQL příkazu nejsem moc moudrý. Přijde mi, že strukturu tabulek máte složitou a celé si to zbytečně komplikujete. Nebylo by lepší mít v tabulce
objednavka pouze jeden sloupeček
Id_pizza (místo dvou sloupečku
Id.pizza1 a
Id_pizza2) a další sloupeček
Typ_pizza s hodnotou např.
1 pro celou pizzu a
2 pro půlenou. A pomocí jednoho spojení
JOIN si pak jednoduše zjistíte název pizzy z tabulky
pizza_zaklad. Příkaz by pak vypadal např.:
Kód:
SELECT objednavka.Id, objednavka.Id_objednavky, pizza_zaklad.nazev, objednavka.Typ_pizza FROM objednavka INNER JOIN pizza_zaklad ON objednavka.Id_pizza = pizza_zaklad.Id_pizza WHERE vyrizeno=0
A samozřejmě ještě zvažte, jestli není lepší použít místo
INNER JOIN spojení
LEFT JOIN. Protože pokud by v tabulce
pizza_zaklad hledané
Id_pizza neexistovalo (např. při nechtěném smazání nebo chybné hodnotě Id), tak se při použití
INNER JOIN výsledek (daný řádek) vůbec nezobrazí. Ale při použití
LEFT JOIN se Vám zobrazí a
nazev bude mít hodnotu
NULL.
Každopádně pokud chcete ponechat stávající strukturu tabulek, tak můžete použít příkaz ve tvaru:
Kód:
SELECT objednavka.Id,objednavka.Id_objednavky,p1.nazev AS pizza1, p2.nazev AS pizza2 FROM objednavka LEFT JOIN pizza_zaklad p1 ON objednavka.Id_pizza1 = p1.Id_pizza LEFT JOIN pizza_zaklad p2 ON objednavka.Id_pizza2 = p2.Id_pizza WHERE objednavka.vyrizeno=0