dedlfix: MySQL Adressbuch mit zwei Anschriften

Beitrag lesen

Tach!

Die Orte habe ich in einer separaten Tabelle eingetragen und mit einem LEFT JOIN verbunden.

Wenn du aus der Orte-Tabelle nur einen einzigen Wert brauchst - den Ortsnamen - dann frag diesen mit einem Subselect ab (geht auch zweimal). Das ist einfacher zu handhaben als die Joinerei.

Dies funktioniert aber leider nur für die eine Adresse, nicht für die zweite.
Wenn ich einen zeiten LEFT JOIN einfüge bekomme ich den Fehler, dass der Wert "Orte" unique ist.

SELECT *

  	FROM adressen  
  	LEFT JOIN orte ON adressen.plzgew = orte.plz  
  	WHERE adressen.plzgew = orte.plz  
  	LEFT JOIN orte ON adressen.plzpriv = orte.plz  
  	ORDER BY nachname
  
Bei diesem Code (dein HTML- und PHP-Zeugs interessiert bei dem Problem nicht) erwarte ich eher einen Syntaxfehler, weil nach dem WHERE kein JOIN auftreten darf. JOIN gehört zu FROM. Wenn deine Absicht wäre, eine weitere für den Join (und nicht nur für die allgemeine Einschränkung der Datensätze) relevante Bedingung anzugeben, dann musst du diese mit AND (oder OR) an die Join-Bedingung anhängen.  
  
Wenn du mehr als einen Wert aus der Ortstabelle benötigst, dann braucht es doch Joins, dann musst du die beiden Tabellen zur Unterscheidung mit je einem Alias versehen.  
  
  
dedlfix.