Autor Zpráva
Hitman
Profil
Mám dvě tabulky - katalog a cennik aut:

Pro zjednodušení vynechám id:

katalog
nazev kategorie
mercedes 1
škoda 2
bmw 1
audi 1
ford 3
humer 3

cenik
nazev cena
mercedes 500 Kč
bmw 800 Kč
audi 300 Kč
bmw 150 Kč


A potřebuji vytvořit dotaz, který najde minimum v každém názvu u příslušené kategorie a seřadí je od nejlevnějšího.

Čili jde mi o kategorii 1, patří tam mercedes, bmw, audi. Jdu do tabulky ceny a najdu kolik stojí nejlevnější mercedes, nejlevnější bmw, nejlevnější audi a ty vypíšu.

Zkusil jsem:

SELECT * FROM cenik WHERE cena = (SELECT MIN(cena) FROM cenik INNER JOIN katalog ON katalog.nazev = cenik.nazev WHERE katalog.kategorie= $kategorie);

A vyhodí to jen nejlevnější 1 auto, čili BMW. To je v pořádku, ale potřebuji aby to potom vypsalo i audi, mercedes. Jestli ten dotaz jen nějak otočit...

Díky
Keeehi
Profil
Něco takového:
SELECT nazev, MIN(cena)
FROM cenik
INNER JOIN katalog ON katalog.nazev = cenik.nazev
WHERE katalog.kategorie = $kategorie
GROUP BY cenik.nazev
ORDER BY MIN(cena)
Hitman
Profil
Nechybí tam závorka a ještě jeden select? Vzhledem k tomu 2x FROM...když jedno odmažu ukazuje to ne chybu ve WHERE katalog....

// Tak nevím co tam bylo za chybu, takto mi to už vzalo (jen SELECT katalog.kategorie, jinak hlásí "ambiguous), každopádně díky, ty skupiny mi dělají pořád problémy..
Keeehi
Profil
Nechybí. Ten jeden from tam samozřejmě přebýval. No a proč to po umazání ukazovalo chybu bylo kvůli špatnému pořadí where a group by.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: