Tach!
weiß eventuell Jemand wie man doppelte Einträge verhindern kann per SQL im PHP-Code?
Mit Unique Constraints. Man legt einen UNIQUE Index auf das entsprechende Feld oder über mehrere Felder, die die Eindeutigkeit sicherstellen sollen (ein gemeinsamer Index, nicht einzelne Indexe auf jedes Feld).
Wenn du hingegen doppelte Einträge in der Ergebnismenge meinst, dann solltest du kartesische Produkte vermeiden. Das heißt, dass du nur solche Joins nimmst, die in den verknüpften Tabellen nur jeweils einen Datensatz pro Join-Condition ergeben. Oder Correlated Subquerys in der SELECT-Klausel, wenn aus der anderen Menge nur ein einzelner Wert pro Datensatz der Hauptquery genommen werden soll.
Und dann war da noch das DISTINCT, um Dopplungen aus Ergebnismengen zu entfernen. Nimm's nicht! Beziehungsweise versuch es zu vermeiden. Schreib stattdessen die Query so um, dass gar nicht erst ein kartesisches Produkt entstehen, so dass die Notwendigkeit des Rauszukürzen gar nicht erst entsteht.
dedlfix.