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
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
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
Scratch Geschrieben 9. August 2005 Autor Geschrieben 9. August 2005 Danke! funktioniert beides! MySQL war die DB
zirri Geschrieben 11. August 2005 Geschrieben 11. August 2005 funktioniert beides! Ersteres ist ja auch die elegantere Schreibweise von zweiterem...
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 ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden