Autor | Zpráva | ||
---|---|---|---|
Gecko Profil * |
#1 · Zasláno: 9. 9. 2014, 23:31:42
Dobrý večer,
rád bych se Vás zeptal na následující. Morduji se nyní s filtrováním, uvedu na příkladu. Mám tabulku firmy: ID | Nazev | Kraj 1 - Firma A - 1 2 - Firma B - 2 2 - Firma C - 3 atd. V tabulce je sloupec Kraj, ve kterém je číslo představující kraj. Poté mám tabulku s ceníkem: ID | Nazev | Firma | Cena | Kategorie 1 - Tužka - 1 - 300 - 2 2 - Pero - 2 - 150 - 2 3 - Propiska - 3 - 50 - 3 Do tabulky ukládám název zboží, ID firmy, cenu a kategorii (pro možnost filtrování). Rád bych nyní na jedné stránce porovnal stejné zboží všech firem ze stejné kateorie. Problém je, že neumím odladit dostatečně SQL ve filtrování. Sestavil jsem si následující kod: $sql = DB::query("SELECT cenik.id AS cenik_id, cenik.*, firmy.* FROM `firmy-seznam` firmy LEFT JOIN `firmy-cenik` cenik ON cenik.kategorie=firmy.id WHERE Kraj=1 GROUP BY firma "); Jenomže nevím, jak vybrat z tabulky firmy-cenik pouze kategorii např. 2 (Psací potřeby). Nevíte jak stím? Děkui mnohokrát |
||
lionel messi Profil |
#2 · Zasláno: 9. 9. 2014, 23:35:01
Gecko:
Nástrel od boku: SELECT cenik.id AS cenik_id, cenik.*, firmy.* FROM `firmy-seznam` firmy LEFT JOIN `firmy-cenik` cenik ON cenik.kategorie=firmy.id WHERE Kraj=1 AND Kategorie = 2 GROUP BY firma |
||
abc Profil |
Řekl bych spíše:
SELECT cenik.id AS cenik_id, cenik.*, firmy.* FROM `firmy-seznam` firmy LEFT JOIN `firmy-cenik` cenik ON cenik.kategorie=firmy.id WHERE Kraj=1 AND cenik.kategorie = 2 GROUP BY firma Ale koukám, že te sloupec je jen v jedné tabulce, tak by to mohlo fungovat i dle [#2] |
||
Tori Profil |
#4 · Zasláno: 10. 9. 2014, 00:20:56
Jestli porovnat zboží znamená asi takovýhle výstup:
Srovnání cen zboží, Kategorie: 2, Kraj: 3 Tužka - Firma 1: 10 Kč - Firma 87: 12 Kč Mikrotužka Pentel 0.9 - Firma 2: 150 Kč ... SELECT c.id cenik_id, c.*, f.* FROM `firmy-cenik` c INNER JOIN `firmy-seznam` f ON f.id = c.firma WHERE f.kraj = 3 AND c.kategorie = 2 ORDER BY c.nazev, c.cena |
||
Časová prodleva: 10 let
|
0