ORDER BY vor GROUP BY?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ORDER BY vor GROUP BY?

    hi,

    ich nutze folgendes SQL statement um die ersten 20 eröffnungspostings der threads eines bereichs in einem board anzuzeigen:

    PHP-Code:
    SELECT SQL_CALC_FOUND_ROWS `threadid`, `subject`, `nickname`, 
        
    MAX(`date_time`) AS `lastposting`, COUNT(`postings`.`id`) - AS `postings`
    FROM `postings`
    INNER JOIN `threads`
    ON (`threads`.`id` = `postings`.`threadid`)
    WHERE `area` = 'test'
    GROUP BY `threadid`
    ORDER BY `lastpostingDESC LIMIT 020 
    das klappt soweit ganz gut. allerdings werden bei einigen zeilen nicht die daten des ersten postings des threads angezeigt, sondern ein posting das im thread erst später folgt.

    wenn ein thread wie folgt aufgebaut ist:

    posting 1 (eröffungsposting)
    -posting 2
    --posting 3 <-- wird angezeigt
    -posting 4

    werden z.b. die daten von posting 3 angezeigt, obwohl ich eigentlich posting 1 erwarten würde.

    deshalb meine frage: gibt es eine möglichkeit die daten vor dem GROUP BY zu sortieren? das ORDER BY nach dem GROUP BY sortiert bereits die fertigen daten.

    danke.

  • #2
    hat keiner eine idee?

    Kommentar


    • #3
      Wenn du wuesstest was group by macht,wuerdest du es auch selber einsehen. Kann also gar nicht funktionieren.

      Nutze dazu aggregatfunktionen.

      Link
      Niveau sieht nur von unten aus wie Arroganz!

      Kommentar


      • #4
        danke. ich dachte, ich hätte die aggregatfunktion MAX() verwendet?
        MAX(`date_time`) AS `lastposting`
        bleibt also nichts anders über als 2 queries abzusetzen und das ergebnis dann mittels php zusammenzubauen?

        Kommentar

        Lädt...
        X