Ankündigung

Einklappen
Keine Ankündigung bisher.

MIN/MAX Funktion: Tupel aus anderer Spalte auslesen?

Einklappen

Neue Werbung 2019

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

  • MIN/MAX Funktion: Tupel aus anderer Spalte auslesen?

    Hi,

    folgendes Problem:

    Habe eine Abfrage dir mir den Minimalwert einer Spalte ausgibt. Nun möchte ich ganz einfach den dazugehörigen Primärschlüssel des gefundenen Wertes auslesen. Leider funktioniert

    Code:
    SELECT MIN(orderindex) AS highorderindex, gal_pics.ID
    	FROM gal_pics
    	WHERE orderindex>'$currentorderindex'
    nicht. Es kommt die Meldung, man müsse GROUP BY benutzen. Macht hier aber doch gar keinen Sinn und verändert das Ergebnis total. Wie mache ich das dann?

    Danke + Grüße
    Passi


  • #2
    Wenn du eine MySQL-Version hast, die Subselects unterstützt (>4.1 oder so), dann ist es relativ einfach:
    Code:
    SELECT 
        orderindex AS highorderindex, 
        ID 
    FROM gal_pics 
    WHERE orderindex  = 
              SELECT min(orderindex)
              FROM gal_pics 
              WHERE orderindex > $currentorderindex
    Bei älteren Versionen wird es etwas komplizierter, versuch mal
    Code:
    SELECT 
        orderindex AS highorderindex, 
        ID 
    FROM gal_pics g1
    LEFT JOIN gal_pics g2 on g1.orderindex > g2.orderindex
    WHERE g2.orderindex IS NULL
    Gruss
    L

    Kommentar


    • #3
      Verwende nicht MIN() bzw. MAX() sondern benutze LIMIT mit auf- bzw. absteigender Sortierung:
      Code:
      SELECT
          orderindex,
          ID
      FROM
          gal_pics
      ORDER BY
          orderindex
      LIMIT
          1

      Kommentar

      Lädt...
      X