Thread Order by bei JOIN's
(14 answers)
Opened by Froschpopo at 2007-05-08 21:44
wenn man ein GROUP BY macht, bezieht sich das ORDER BY auf die gruppierten daten!
also das ORDER BY passiert zu spät. es geht so nicht. und im WHERE clause kann man nicht auf aggregate zugreifen, dafür gibt es das HAVING, das passiert aber wiederum (eben deswegen) erst nach der gruppierung. der punkt ist, dass man der datenbank nicht sagen kann, gruppiere mit folgenden regeln, z.b. gruppiere bei foto.id immer die höchste id. keine ahnung, ob das nur bei MySQL so ist oder auch bei anderen datenbanken, aber ich denke schon; ich kenne auch keine sql-syntax, die sowas bieten würde. du musst also erst jeweils die max(id) holen und dann in einem zweiten select die fotos selektieren. evtl. geht das ja mit einem subselect. Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |