Min() funktion für zum Vermischen von Datensätzen

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

  • Min() funktion für zum Vermischen von Datensätzen

    Hallo Zusammen,

    ich hab hier ein Problem. Ich möchte den maximalen Wert in der Spalte `order`und die dazugehörige ID ermitteln. Zusätzlich hab ich noch ein paar Bedingung die sich je nach abfrage ändern können (siehe SQL Code). Um nur ein Ergebnis zurück zubekommen Gruppiere ich das ganze bei subtask (dies ist für alle Ergebnisse 'no', unteranderm weil ich es im WHERE teil so fordere).
    Als Rückgabe erhalte ich nun den Maximalen Wert von `order` aber nicht die dazu gehörige id sondern irgend eine andere.

    Code:
    SELECT MIN( `order` ) , t.id
    FROM task AS t, user_task AS ut
    WHERE ut.taskID = t.id
    AND subtask = 'no'
    AND subtask_from IS NULL
    AND ut.loginID =75
    AND `order` >95
    GROUP BY subtask
    Hat jemand eine Idee warum er nicht die zum Orderwert passende id ausgibt und was ich an der Abfrage ändern muss damit er es tut.

    Schon mal Danke für eure Mühen.
    Wissen ist Macht
    Power is nothing without control

  • #2
    na Du verwendest eine Aggregatsfunktion und gruppierst nicht nach allen single cols sondern nach irgendwas anderem.
    MySQL lässt das zu, doch das Ergebnis kann anders sein als erwartet.
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      hmm, ok

      erstmal Danke für die Information.

      Dies hier schein es jetzt zu tun...

      Code:
      SELECT MIN(`order`), t.id 
      FROM task as t, user_task as ut 
      WHERE ut.taskID=t.id 
      AND subtask='no' 
      AND subtask_from IS NULL 
      AND ut.loginID=75 
      AND `order` > 95 GROUP BY `order` 
      ORDER BY `order` ASC 
      LIMIT 1
      Ich sortiere jetzt nach Order und nehme halt nur eins (auf LIMIT hätte ich früher kommen können). Trotzdem finde ich die Geschichte seltsam, da er teilweise auch die richtigen ids gebracht hat, hat eine weile gedauert bis mir der Fehler klar wurde...
      Wissen ist Macht
      Power is nothing without control

      Kommentar


      • #4
        select min(order) group by order macht ja mal viel sinn
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          hmm, stimmt die MIN() funktion kann ich mir jetzt auch noch sparen, hab ich einfach von der vorherigen Version übernommen.

          Danke
          Wissen ist Macht
          Power is nothing without control

          Kommentar

          Lädt...
          X