GROUB BY und ORDER BY-Problem

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

  • GROUB BY und ORDER BY-Problem

    Hallo,

    ich hab jetzt sehr lange nach eine Lösung gesucht, aber noch keine gefunden!

    Es handelt sich um das bekannte MySQL-Problem das eine ORDER BY in Verbindung mit einem GROUB BY nicht funktioniert!

    Meine Abfrage:
    Code:
    SELECT a.contentId,a.contentTitle,b.feedTitle FROM feedContents AS a JOIN feeds AS b 
    ON a.feedId=b.feedId WHERE b.isActive=1 GROUP BY a.feedId ORDER BY a.lastModified DESC LIMIT 10
    Ich will erreichen das pro Feed immer nur der neuste Inhalt ausgegen werden soll. Leider gibt die Abfrage scheinbar den ältesten zurück!

    Hat jemand eine Idee wie ich das anders umsetzen kann? Ein Subselect, was ich noch nicht probiert habe, will ich eher nicht verwenden, da ich mit sehr großen Datenmengen arbeite!

    Danke

  • #2
    Zitat von TriphunEM Beitrag anzeigen
    Es handelt sich um das bekannte MySQL-Problem das eine ORDER BY in Verbindung mit einem GROUB BY nicht funktioniert!
    Das ist Quatsch.

    Meine Abfrage:
    Code:
    SELECT a.contentId,a.contentTitle,b.feedTitle FROM feedContents AS a JOIN feeds AS b 
    ON a.feedId=b.feedId WHERE b.isActive=1 GROUP BY a.feedId ORDER BY a.lastModified DESC LIMIT 10
    Das ist eine Verletzung des SQL-Standards, deinerseits - du darfst an dieser Stelle nur Spalten selektieren, die sich auch innerhalb der Gruppierung befinden.

    Dass MySQL das im fehlertoleranten Modus durchgehen lässt, ändert nichts daran, dass du hier fehlerhaft vorgehst.

    Ich will erreichen das pro Feed immer nur der neuste Inhalt ausgegen werden soll. Leider gibt die Abfrage scheinbar den ältesten zurück!
    Dafür ist der Ansatz selbstverständlich untauglich.
    MySQL dokumentiert deutlich, dass du in so einem Fall Daten aus irgendeinem der Datensätze zurück bekommst - nicht aus dem „ersten“, nicht aus dem „letzten“, sondern aus irgendeinem.

    Ein Subselect, was ich noch nicht probiert habe, will ich eher nicht verwenden, da ich mit sehr großen Datenmengen arbeite!
    Entweder Subselect, oder ggf. auch ein SELF JOIN.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar

    Lädt...
    X