[MySQL 4.1] Hilfe zu einer Query

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

  • [MySQL 4.1] Hilfe zu einer Query

    Hallo zusammen.

    Ich bastele an einer SQL-Query, bekomme sie aber nicht zusammen. Vielleicht kann mir da jemand helfen? Habe es schon mit JOINs und Subqueries probiert, aber ich komme nicht weiter.

    Tabelle a:
    | a1 | a2 | a3 |
    | a | 5 | ID5 |
    | a | 4 | ID6 |
    | a | 6 | ID8 |
    | b | 3 | ID9 |

    Ich suche eine Query, die mir alle verschiedenen Werte der Spalte a1 ausließt (riecht stark nach DISTINCT a1), aber absteigend sortiert nach a2. Sprich was ich als Rückgabe brauchst sind (in diesem Fall) zwei Spalten:

    | a | 6 | ID8 | <- denn hier ist 6 der höchste Wert
    | b | 3 | ID9 | <- denn hier ist 3 der einzige (und damit höchste) Wert

    So. Und dazu die Query. Ein einfaches DISTINCT auf a1 mit ORDER BY a2 DESC bringt nämlich nicht das gewünschte Ergebnis.

    Hat jemand einen Vorschlag? Ein Stichwort würde mir schon reichen

    Viele Grüße, Markus

  • #2
    Re: [MySQL 4.1] Hilfe zu einer Query

    SELF-JOIN, in der ON-clause MIN() verwenden:
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ok ich habe nun folgendes getestet:

      PHP-Code:
      SELECT
        m1
      .a1
      FROM
        tabelle 
      AS m1
        JOIN
          tabelle 
      AS m2
          ON
            m1
      .a2 MAX(m2.a2)
            AND
            
      m1.a1 m2.a1 
      Aber es bringt "invalid use of group function". Diese MAX() nutze ich wohl falsch. Aber wieso genau? Selbst wenn ich noch ein GROUP BY m1.a1 einsetze ändert sich nichts.

      Kommentar


      • #4
        Guten Abend,

        hat hierfür jemand mittlerweile eine Antwort?

        Gruß, Markus

        Kommentar


        • #5
          Du verwendest MAX() in einem gemischten Ausdruck, ohne GROUP BY. Entweder du verwendest GROUP BY oder legst die Abfrage mit MAX() in einen Subquery.

          Kommentar


          • #6
            Was spricht gegen
            PHP-Code:
            SELECT
                a1
            ,
                
            MAX(a2) AS max,
                
            a3
            FROM
                tabelle
            GROUP BY
                a1 
            ? Wobei a3, falls es nicht linear von a1 abhängig ist (in deinem Beispiel ist es), einen zufälligen Wert enthält.
            Gruss
            H2O

            Kommentar


            • #7
              ich teste mal, danke für die Antworten.

              Kommentar


              • #8
                Original geschrieben von H2O
                Was spricht gegen
                PHP-Code:
                SELECT
                    a1
                ,
                    
                MAX(a2) AS max,
                    
                a3
                FROM
                    tabelle
                GROUP BY
                    a1 
                ? Wobei a3, falls es nicht linear von a1 abhängig ist (in deinem Beispiel ist es), einen zufälligen Wert enthält.
                OffTopic:
                Jedes Mal wenn ich so 'ne verkrüppelte Abfrage à la MySQL dann wird's mir schwindlig.

                Kommentar

                Lädt...
                X