Susanne: MYSQL beim Select eine ID nur einmal ausgeben

Hallo,

mein Name ist Susanne und ich bin durch google hier gelandet. Das Forum ist ja schon sehr Hilfreich, daher versuche ich es einmal mit meiner Anfängerfrage.
Kurz zur Erklärung ich habe eine Datenbank mit 2 Spalten
1 ID ; 2 Preis
Die Spalten ID und Preis sind nicht unique.
Nun möchte ich die Spalte sortieren nach dem Preis, möchte aber das jede ID nur einmal angezeigt und dann die jeweils günstigste Variante.

Mein Ansatz ist die wohl simpleste Version:

SELECT * FROM testdaten ORDER BY Preis ASC

hier sind dann die doppelten ID´s aber noch immer vorhanden! Wie bekomme ich es jetzt hin das jede ID nur einmal ausgegeben wird und zwar die mit dem günstigstem Preis?

Danke Susanne

  1. Mahlzeit Susanne,

    Nun möchte ich die Spalte sortieren nach dem Preis, möchte aber das jede ID nur einmal angezeigt und dann die jeweils günstigste Variante.

    Suche hier im Forumsarchiv nach dem Stichwort "korrelierte Unterabfrage".

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hi,

      Suche hier im Forumsarchiv nach dem Stichwort "korrelierte Unterabfrage".

      Reicht da nicht group by und min()?

      ~dave

      1. Hallo ~dave,

        ich habe einmal gebastelt:

        SELECT * FROM testdaten GROUP BY id ORDER BY Preis ASC

        das sieht schon einmal klasse aus aber wie meinst du jetzt das MIN ein zu setzten?

        1. Hallo Susanne

          SELECT id, MIN(preis) as preis FROM testdaten GROUP BY id ORDER BY Preis ASC

          sollte des Rätsels Lösung sein

          gruß Emetiel

          1. Danke Emetiel

            das hat wirklich geholfen.

            susanne

    2. Hallo EKKi,

      viel Dank ich weiß jetzt also dank http://dev.mysql.com/doc/refman/5.1/de/correlated-subqueries.html das man zwei Selectabfragen in einer Abfrage verbinden kann.
      Vielleicht bin ich jetzt zu sehr Anfänger, aber wie hängst das mit meiner ursprünglichen Frage zusammen?

  2. Hallo,

    Kurz zur Erklärung ich habe eine Datenbank mit 2 Spalten
    1 ID ; 2 Preis
    Die Spalten ID und Preis sind nicht unique.

    Die Benamung der Spalte ID ist in deinem Fall sehr ungünstig. ID steht für Identifier - wenn der nicht unique ist ist es auch kein Identifier.

    vg ichbinich

    --
    alles wird gut...
    1. Hallo ichbinich,

      ok das entspricht nicht dem üblichen Syntax man könnte sie auch ArtikelID nennen. Habe das jetzt einmal in der Datenbank geändert.

      Gruß Susanne