Group by és max() SQL-ben - nem jól használom?
Üdv Mindenkinek!
Segítséget szeretnék kérni egy sql lekérdezésben.
Adott egy fórum. Előszőr is kilistázom a topicokat, tid-jük alapján pedig GROUP By ozom őket. Lekérdezem a max-id-t is, ami az utolsó hozzászólás lenne, vagyis megadja a topic összes hozzászólását. Viszont ha a nevet akarom kiiratni akkor már nem jó valami. Nem az utolsót adja be. :(
Így néz ki:
$sql = mysql_query("SELECT topic, tid, name, max(date) AS date, max(id) AS id FROM forum Group By tid Order By date DESC")
A max(date) az jó. A max(id) is működik. de ha a nevet íratom ki akkor már egy teljesen más nem nevet ír ki!
Please Help me!
■ Segítséget szeretnék kérni egy sql lekérdezésben.
Adott egy fórum. Előszőr is kilistázom a topicokat, tid-jük alapján pedig GROUP By ozom őket. Lekérdezem a max-id-t is, ami az utolsó hozzászólás lenne, vagyis megadja a topic összes hozzászólását. Viszont ha a nevet akarom kiiratni akkor már nem jó valami. Nem az utolsót adja be. :(
Így néz ki:
$sql = mysql_query("SELECT topic, tid, name, max(date) AS date, max(id) AS id FROM forum Group By tid Order By date DESC")
A max(date) az jó. A max(id) is működik. de ha a nevet íratom ki akkor már egy teljesen más nem nevet ír ki!
Please Help me!
Mikor mit ír ki?
--------
Poetro
<Nincs cím>
a példa alapján minden őké csak a nevet köti rössz dátumhoz...
SQL szabvány vs MySQL szabvány
A szabvány szerint a select lisátban olyan mező, amelyik szerint nem groupolunk, nem szerepelhet, csak egy aggregátor függvényben (max, count, stb.). Szóval a fenti query hibás, és egy adatbázis kezelő hibaüzenettel díjazná.
Felhő
<Nincs cím>
GROUP BY tid, name
--------
Poetro
<Nincs cím>
FROM forum WHERE date = MAX(date) GROUP BY tid ORDER BY date DESC
nem műxik...
A having-et + nem tudom használni...
please help me!
<Nincs cím>
Segítsetek, hogyan oldjam meg azt Mysql lekérdezéssel, hogy a fent említett módon kilistázzá a fórum tid-jeit topic címeit dátumot ami a legutóbbi és a hozzájuk kapcsolodó nevet.
Ti hogyan oldanátok meg?
Hogyan oldanánk meg?
--
Szeretettel: Károly György Tamás
kgyt(a)kgyt.hu - http://kgyt.hu
Hááát....
Amúgy meg ha nem értesz mysql-hez akkor a fapados módszer.. egy sima selectel lekérdezed az összes topicot, és amikor a while-val kiiratod akkor minden egyes topicnál csinálsz egy lekérdezést az utolsó hozzászólásra vonatkozóan....
bye Tomi
subselectes megoldás
Mivel Poetro barátunk nyagyon profi cikket írt a hirarchikus adatkezelésről, ezért meglep hogy ezt az egyszerü SQL mondatot elsőre elvétette :)
Csak SubSelect-et ismerő MySQL-lel fog működni.