[MySQL 4.1] Group by und order by fehlerhaft?

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

  • [MySQL 4.1] Group by und order by fehlerhaft?

    Hallo erster beitrag und gleich ein hilfegesuch :/

    Problemstellung :
    Datenbanktabelle xyz
    +----------++----------+
    | name | | preis* |
    +----------++----------+
    | a | | 1.99 |
    +----------++----------+
    | a | | 1.89 |
    +----------++----------+

    *preis ist Decimal 10,2

    -> SELECT name, preis
    -> FROM xyz
    -> GROUP BY name
    -> ORDER BY preis ASC

    Ausgabe :
    +----------++----------+
    | name | | preis* |
    +----------++----------+
    | a | | 1.99 |
    +----------++----------+

    Ich denke ihr versteht das ich 1.89 haben wollte
    und ja ich will nur den günstigsten preis von 'a' anzeigen lassen!
    Nun wo is mein denkfehler ?
    Ich weis nimmer weiter wahrscheinlich bin ich betriebsblind

  • #2
    es wird nicht innerhalb der gruppe sortiert, sondern gruppierte ergebnisse zueinander.

    schau dir mal MIN() an wenn du immer den niedrigsten wert suchst.
    Kissolino.com

    Kommentar


    • #3
      Schon klar das in MySQL 4.1 GROUP BY und ORDER BY kaputt sind ... beide Klausel werden ja so gut wie nie verwendet ... ausserdem hat die MySQL ja lediglich production Status ...

      MERKE: Benutzer machen nie Fehler!
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        gut nu hab ich das mit dem min() auch gemacht nur nimmt der komischer weise zwar den min preis aber die id vom ersten in der gruppe O.o ?

        also hier nochmal bsp meiner tabelle:


        TEST
        id | name | preis
        1 | a | 1.99
        2 | a | 1.89
        3 | a | 1.79

        Abfrage.
        Select id,name,min(preis)as preis from TEST group by name
        ergebnis.
        id | name | preis
        1 | a | 1.79
        sollte aber
        id | name | preis
        3 | a | 1.79
        sein, da ich mit der passenden id weiter arbeiten möchte
        jemand ne idee?



        ps: sry wollte mit mysql 4.1 die neueste wählen da ich bei meinem provider das nich einsehen kann und eigentlich nur mal hier mal da abfragen tätige.
        Zuletzt geändert von FCK; 21.09.2005, 03:40.

        Kommentar


        • #5
          irre ich mich, oder musst du einfach DESC anstatt ASC nehmen? das ganze bei der ersten abfrage.


          PS: warum nimmst man nicht mehr "order" und "group"
          Immer schoen den Quelltext brechen....
          Sorry: UMBRECHEN!

          Kommentar

          Lädt...
          X