TB: SELECT DISTINCT

Folgender code funtioniert zwar, allerdings werden trotz DISTINCT gleiche einträge von "name" doppelt angezeigt.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SELECT DISTINCT id,name,detail, kategorie FROM projekte ORDER BY name
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ich habe es dann mal so ausprobiert. jetzt klappt es allerdings fehlen mir dann "id","detail","kategorie":

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SELECT DISTINCT name FROM projekte ORDER BY name
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

wie kann ich das lösen, das name Destinct wird und die anderen spalten geladen werden?

TB

  1. du musst es so schreiben

    SELECT DISTINCT id, DISTINCT name, DISTINCT detail, DISTINCT kategorie FROM projekte ORDER BY name

    1. danke werde es morgen testen.

  2. Huhu TB

    DISTINCT bezieht sich immer auf den nachfolgenden Spaltennamen.
    Wenn Du also in Deinem ersten Beispiel die Anordnung korrigierst
    funktioniert es so wie Du möchtest.

    Viele Grüße

    lulu

  3. Hi TB

    wie kann ich das lösen, das name Destinct wird und die anderen spalten geladen werden?

    Nur indem du deinen Denkfehler löst. Wie soll deine Datenbank wissen, welche
    id, detail und kategorie du haben willst? Die sind ja anscheinend von
    einander verschieden trotz selben Namens. Entweder das ist ein Fehler im Design deiner
    Datenbank den du korrigieren musst oder du kannst zusätzliche Bedingungen
    für die Felder definieren. Als Beispiel dafür die Aggregatsfunktionen
    wie max....

    Gruss Daniela

    1. Hi TB

      Ergänzung: Du kannst in MySQL erreichen, das er sie dir zusammenfasst
      zu einem. Die anderen Felder werden dann mehr oder weniger zufällig
      aus einem der zusammengefassten Datensätze gewählt. Achtung, andere
      Datenbanken werden dir das Konstrukt um die Ohren werfen weil sie
      eben nicht wissen, welche der anderen Felder.

      Select id,name,detail, kategorie
        from projekte
        group by name  <-- das ist das neue
        ORDER BY name

      Aber du solltest dir echt überlegen ob der Fehler nicht schon viel
      früher passiert ist oder du bei den anderen Felder genauer spezifizieren
      kannst aus welchem Datensatz sie kommen sollen.

      Gruss Daniela

  4. Hallo,

    soweit ich weiß kann distinct nur einmal eingesetzt/vergeben werden.
    Ein distinct auf die ID ist allerdings unlogisch, sofern man davon ausgeht, dass die ID ein Autoincrement-Wert ist und somit eh schon eindeutig ist. Ergo

    select id, distinct name, detail, kategorie from projekte order by name.

    hth
    jonas