dedlfix: mysql DISTINCT unterschiedliche Ergebnisse

Beitrag lesen

Tach!

Ein Problem tut sich gerade auf, was ich nicht verstehe.

select distinct(feld1) from xyz...

ergibt 400 Einträge

Diese Abfrage aber mit
select distinct(feld1),f2,f3,f4 from xyz...

ergibt 500 Einträge

Versteh ich DISTINCT falsch?

Ja. DISTINCT ist keine Funktion. Es wirkt auf die gesamte Zeile.

Die Klammern sind syntaktisch richtig, aber sie klammern lediglich das feld1. Sie wirken wie Klammern um x-beliebige Ausdrücke und werden ignoriert, wenn sie keine Prioritäten festlegen. Beispielsweise ist x=(y) dasselbe wie x=y.

... wo ist mein Denkfehler?

Für mich ist das Verwenden von DISTINCT meist ein Zeichen dafür, dass man die Ergebnismenge beim Where und beim Joinen nicht genug eingeschränkt hat.

dedlfix.