Scratch Geschrieben 9. August 2005 Geschrieben 9. August 2005 Hi, habe mal eine Frage bezüglich SQL: habe 2 Tabellen: person id name 1 Hans 2 Klaus 3 Ralf liste p1 p2 1 2 2 1 3 1 Die Spalten P1 und P2 enthalten jeweils die ID's aus der person Tabelle Wie muss ich jetzt die Tabellen abfragen damit ich als Ergebnis folgendes bekomme: ergebnis p1 p2 Hans Klaus Klaus Hans Ralf Hans Mit SELECT person.name FROM person,liste WHERE person.id=liste.p1 bekomm ich nur die Namen der ersten Spalte angezeigt. Ich weiss jetzt leider nicht wie ich weitermachen muss um auch Spalte p2 in Namen umzuwandeln. Sollte ja gehen. Danke!! Gruß Scratch Zitieren
Monty82 Geschrieben 9. August 2005 Geschrieben 9. August 2005 Welches ®DBMS? Falls MySQL: SELECT b.name,c.name FROM liste AS a LEFT JOIN person AS b ON b.id=a.p1 LEFT JOIN person AS c ON c.id=a.p2 Zitieren
AxlHammer Geschrieben 9. August 2005 Geschrieben 9. August 2005 Hallo, wie wär es mit dieser Lösung: select ps1.name, ps2.name from person [as] ps1 , person [as] ps2 , liste [as] l where l.p1 = ps1.id and l.p2 = ps2.id; Ansonsten wie bereits geschrieben, bitte die Datenbank mit angeben. Gruss, Axl Zitieren
Scratch Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 Danke! funktioniert beides! MySQL war die DB Zitieren
zirri Geschrieben 11. August 2005 Geschrieben 11. August 2005 funktioniert beides! Ersteres ist ja auch die elegantere Schreibweise von zweiterem... Zitieren
Monty82 Geschrieben 11. August 2005 Geschrieben 11. August 2005 Und ersteres zeigt Dir NULL an, bei Namen, die in der Zuordnungstabelle in einem der beiden Attribute enthalten sind, aber keinen entsprechenden Eintrag in der Namenstabelle haben, weil LEFT JOIN. Wenn Du also wirklich nur die Zuordnung zweier Namen haben willst, Die es beide auch in der Namenstabelle gibt, dann nimm das Statement von AxlHammer, z.B. wenn die Inhalte deiner Zuordnungstabelle inkonsistent sind ... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.