Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

doppelte einträge in mysql DB





Frage

ich möchte eine tabelle auslesen und es soll dabei kein eintrag doppelt vorkommen. so weit so gut, dafür ist ja eigentlich > distinct da. SELECT distinct name FROM album WHERE kid = '5712' so funktioniert es ja. nur ich möchte noch eine id mitbekommen. die spalte heißt einfach id. kann mir jemand weiterhelfen? so gehts nicht: SELECT distinct name,id FROM album WHERE kid = '5712' gruß dome85

Antwort 1 von semi

select name,id
from album
where kid='5712'
group by name


Antwort 2 von Trullala

Die Anweisung ist ansich korrekt(SQL92):

SELECT distinct name,id FROM album WHERE kid = '5712'

Also kanns nur an zwei dingen liegen, das Attribut "id" ist nicht vorhanden oder das Programm in dem du auf mysql zugreifst shlüsselt den Befehl nicht richtig um bzw. mysql hat hier ein Problem, wäre nicht das erste mal, da mysql nicht besonders konform zu SQL92 ist. Einfach mal das mysql doc checken.

Antwort 3 von draack

Hallo!

@kasper: Das Problem ist, dass das "DISTINCT" sich auf die komplette Zeile des Resultset bezieht. Ich sehe nicht, das MySQL hier nicht SQL92-konform arbeitet.

Die Lösung von semi funktioniert nur wg. der erweiterten "GROUP BY" Funktionalität von MySQL ("id" ist nicht in der "GROUP BY" Klausel) - für z.B. Oracle würde ich hier eine Subquery (die kann MySQL noch nicht) und die ROWID verwenden.

Ciao!
Volker.

Antwort 4 von Trullala

Na ich weis ja nicht was er vor hat, evtl ist es kein syntaktiasches Problem, sondern ein semantisches.

Ich kann ja hier nicht daraus ableiten, dass id ne eindeutige od. mehrfache id ist.Ihr scheint da wohl eher Hellseher zu sein od. Sachen anzunehmen, die schlichtweg nicht da stehen

Antwort 5 von dome85

@trullala id ist eine eindeutige id. werde semis lösung gleich mal versuchen.
ich arbeite mit php!

gruß und danke
dome85

Antwort 6 von semi

Wenn Id eindeutig ist, dann sollte Deine Anweisung mit dem DISTINCT funktionieren.
Bei dem mit GROUP BY macht es in diesem Fall keinen Sinn die Id auszugeben, da es eine von vielen ist.

Antwort 7 von dome85

ich weiß nicht warum das mit distinct nicht funktionert hat, das mit group by reicht mir - macht genau, das was ich will!
danke nochmal!


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: