dedlfix: Multipler Output von SQL-Datensätzen

Beitrag lesen

Hi!

Bitte zitiere in der hier üblichen Weise und nicht Full-Qoute mit Text drunter. Danke.

Verstehe, weil also mehrere Ergebnisse durch das LEFT JOIN gefunden werden, gibt SQL den Datensatz auch mehrfach zurück.

Naja, wenn du bei einem Join wird immer das kartesische Produkt gebildet, also alle Datensätze von links werden mit denen von rechts multipliziert.

Gut, ich werde erstmal DISTINCT einsetzen, da es das Problem behebt, da das Modul benötigt wird.

Warum auch immer deine Datenstruktur so aufgebaut ist, dass bei dieser Abfrage mehrere Datensätze in der anderen Tabelle gefunden werden, DISTINCT ist nicht die beste Lösung. Denn dieses nimmt sich irgendeinen Datensatz. Das Ergebnis aus der dritten Tabelle ist damit ein zufälliges. Wenn das aufgrund deiner Daten doch stets das selbe ergibt, dann machst du was verkehrt. Um da was konkret besseres vorschlagen zu können, müsste man Bedeutung der Felder und ihre Zusammenhänge kennen.

Werde aber noch sehen ob ich die Abfrage brauchbar verbessern kann.

Auch das von Ilja vorgeschlagene Subselect sehe ich nicht unbedingt als die Lösung (des vermuteten strukturellen Problems) an. Mit diesem kannst du jedoch zumindest genauer als mit dem DISTINCT spezifizieren, welchen der 6 Datensätze es liefern soll (WHERE, ORDER BY, LIMIT wären die einschränkenden Kandidaten).

Lo!