Autor | Zpráva | ||
---|---|---|---|
PetraPP Profil |
#1 · Zasláno: 31. 10. 2014, 19:56:44
Potřebovala bych udělat výpis jmen podle kategorii a kategorie seřadit podle pořadí. Jak bude vypadat mySQL dotaz?
jmena id kategorie_id nazev platnost_od platnost_do kategorie id nazev poradi |
||
lionel messi Profil |
Treba použiť JOIN. Asi nejako takto (môže tam byť chyba, píšem z hlavy, keby niečo nefungovalo, ozvite sa, ja alebo kolegovia doladíme):
SELECT * FROM `jmena` JOIN `kategorie` ON `kategorie_id` = `id` ORDER BY `poradi` Zechy riešenie doplnil. |
||
Zechy Profil |
lionel messi:
SELECT * FROM `jmena` JOIN `kategorie` ON (`kategorie_id` = `kategorie`.`id`) ORDER BY `poradi` Nejednoznačný sloupec ID - Dotaz by nevěděl, jestli má vzít id z jména nebo kategorie. EDIT: Případně se dají použít aliasy tabulek, sloupce z určitých tabulek se pak dají vybírat "snáze" než rozepisovat názvy tabulek. SELECT * FROM `jmena` j JOIN `kategorie` k ON (`kategorie_id` = k.`id`) ORDER BY `poradi` |
||
lionel messi Profil |
#4 · Zasláno: 31. 10. 2014, 20:08:47
Zechy:
Vďaka za doplnenie. |
||
PetraPP Profil |
#5 · Zasláno: 31. 10. 2014, 21:33:14
Potřebovala bych i vypsat, kolik je jmen v kategorii, ale potřebuji vypsat všechny kategorie bez rozdílu, jestli je tam počet jmen 0 nebo 100. Když tam dosadím count, tak dostanu chybu :(
MySQL error: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause |
||
Zechy Profil |
#6 · Zasláno: 31. 10. 2014, 21:39:18
PetraPP:
A jak ten dotaz vypadá? |
||
Tori Profil |
#7 · Zasláno: 1. 11. 2014, 00:10:26
PetraPP:
„Potřebovala bych udělat výpis jmen podle kategorii“ vs. „Potřebovala bych i vypsat, kolik je jmen v kategorii, ale potřebuji vypsat všechny kategorie“ Takže chcete vypsat všechna jména, k nim kategorie, a ke kategoriím počet jmen? Anebo chcete vypsat kategorie a k nim počet jmen (ale ne přímo jednotlivá jména)? |
||
PetraPP Profil |
#8 · Zasláno: 1. 11. 2014, 19:45:38
Potřebuji vypsat kategorie a k nim počet jmen.
|
||
Tori Profil |
#9 · Zasláno: 1. 11. 2014, 19:56:41
Tak je potřeba seskupit záznamy podle ID kategorie.
|
||
PetraPP Profil |
#10 · Zasláno: 1. 11. 2014, 21:58:30
Moc tomu nerozumím :( Jaký by tedy byl mySQL dotaz na to, co potřebuji?
|
||
Kajman Profil |
#11 · Zasláno: 1. 11. 2014, 22:19:30
SELECT k.*, count(j.`kategorie_id`) jmen FROM `jmena` j RIGHT JOIN `kategorie` k ON j.`kategorie_id` = k.`id` GROUP BY k.`id` ORDER BY k.`poradi` |
||
Časová prodleva: 9 let
|
0