Mailinglisten-Archive |
Hi Liste, ich versuche gerade, ein System von mir etwas schneller zu machen. An einer Stelle bin ich mir da nicht sicher, ob das nicht einfacher geht. Ich habe z.B. zwei Tabellen. Tabelle 1: personen Felder: id, vorname, name, std_telefon, std_fax Tabelle 2: kommunikationen Felder: id, typ, kommunikation In der Tabelle 2 stehen also z.B. alle Telefonnummern etc., die dann mit der id in den Standardfelder (z.B. std_telefon) der Tabelle 1 abgelegt sind. Jetzt möchte ich eine Abfrage über die Tabelle 1 machen, und gleichzeitig die Kommunikationen erhalten, die ja als ids in den Feldern std_telefon und std_fax enthalten sind. Grundsätzlich nichts Schwieriges, das mit dem LEFT JOIN-Attribut gelöst werden kann. Nur habe ich ja jetzt zwei Standardkommunikations-IDs in der Tabelle 1 und möchte beide "übersetzt" haben. Darum frage ich das derzeit wie folgt ab: SELECT A.vorname, A.name, B.kommunikation AS telefon, C.kommunikation AS fax FROM personen AS A LEFT JOIN kommunikationen AS B ON B.id=A.std_telefon LEFT JOIN kommunikationen AS C ON C.id=A.std_fax Funktioniert wunderbar! Aber kann man das nicht auch anders lösen, so dass ich nur einmal die Tabelle "kommunikationen" ansprechen muss? Denn in meinem System habe ich noch weitere Standardfelder wie "mobil", "email" und "homepage". Dann müsste ich insgesamt fünf mal ein LEFT JOIN machen, dass sieht mir sehr unsauber aus ... greeting, Dennis
php::bar PHP Wiki - Listenarchive