Autor | Zpráva | ||
---|---|---|---|
hrouda Profil |
#1 · Zasláno: 4. 12. 2013, 08:43:03
Zdravím,
chci se prsoím zeptat jakým dotazem se zeptat, když chci zjistit kolik kategorii ma jedno zbozi a kolik zbozi ma jedna kategorie. Mam 3 tabulky: 1.zbozi 2.kategorie 3.zbozi_kategorie select zbozi.nazev, kategorie.nazev AS 'category' from zbozi join zbozi_kategorie on zbozi.id = zbozi_kategorie.id_zbozi join kategorie on zbozi_kategorie.id_kategorie = kategorie.id Zkoušel sem toto, ale vrací prázdnou hodnotu |
||
Kajman Profil |
#2 · Zasláno: 4. 12. 2013, 08:49:38
Něco jako
SELECT zbozi.nazev, Count(DISTINCT zk.id_kategorie) kategorii FROM zbozi LEFT JOIN zbozi_kategorie zk ON zbozi.id = zk.id_zbozi GROUP BY zbozi.id, zbozi.nazev Kdy místo group by sekce můžete dát where omezení, pokud počet kategorií nechcete počítat pro všechno zboží, ale jen pro jedno konkrétní dle id. Počet zboží v kategoriích bude téměř to stejné, ale musíte udělat druhý dotaz. Nesnažte se to cpát do jednoho. |
||
hrouda Profil |
#3 · Zasláno: 4. 12. 2013, 08:53:30 · Upravil/a: hrouda
Díky moc, a co znamená to zk ? :-)
nazev zbozi Tricka 0 Ponozky 0 Bundy 0 Boty 0 Panské 0 Dámské 0 Dlouhé 0 Krátké 0 Dlouhé 0 Krátké 0 Jarní 0 Letní 0 Podzimní 0 Zimní 0 Letní 0 Zimní 0 Pánské 0 Dámské 0 Pro děti 0 Pánské 0 Dámské 0 Pro děti 0 Papuče 0 Gumáky 0 Tenisky 0 Toto me to vypíše, proč to vypisuje 0 ve sloupci zbozi ? |
||
Kajman Profil |
#4 · Zasláno: 4. 12. 2013, 09:11:26
hrouda:
„proč to vypisuje 0 ve sloupci zbozi ?“ Težko říct, asi jste dotaz špatně upravil. Původní žádný sloupec zbozi nevytvářel. zk je jen alias pro tabulku zbozi_kategorie v rámci toho jednoho dotazu. To aby se s ní mohlo pracovat s kratším identifikátorem. |
||
hrouda Profil |
#5 · Zasláno: 4. 12. 2013, 09:34:16
v tabulce zbozi je - id, nazev, popis, cena, img, kategorie...v tabulce kategorie je- id, nazev, url, id_nadkategorie..a treti tabulka zbozi_kategorie je - id, id_zbozi a id_kategorie..
Už se s tím peru od ráno a začíná mě to vytáčet :-( |
||
Kajman Profil |
#6 · Zasláno: 4. 12. 2013, 10:41:58
Pokud tam máte data, bude chyba v dotaze. Pokud ho sem nedáte, těžko může někdo poradit.
|
||
hrouda Profil |
SELECT * FROM zbozi JOIN zbozi_kategorie ON zbozi.id = zbozi_kategorie.id_zbozi JOIN kategorie ON zbozi_kategorie.id_kategorie = kategorie.id ORDER BY RAND() LIMIT 1 |
||
Kajman Profil |
#8 · Zasláno: 4. 12. 2013, 12:29:27
|
||
Časová prodleva: 12 let
|
0