Wolfgang: MySql selfjoin Problem

Beitrag lesen

Hallo!

Ich habe ein Problem mit einer Abfrage.
Meine Tabelle hat 4 Spalten: "id", "name", "eingeladenVon" und "rausgeworfenVon".
Die Spalten "eingeladenVon" und "rausgeworfenVon" enthalten eine Id aus der Spalte "id" bzw. können sie auch NULL sein.

Ich suche eine Abfrage die mir zusätzlich die Namen zu den Ids aus "eingeladenVon" und "rausgeworfenVon" zu einem Datensatz gibt.

Zum Beispiel gibt es die Datensätze
id, name  , eingeladenVon, rausgeworfenVon
1 , heidi , NULL        , NULL
2 , peter , 1           , NULL
3 , michel, 2           , 1

Wenn ich jetzt die Daten von "michel" möchte, sollen sie so aussehen:
id, name  , eingeladenVon, rausgeworfenVon, eingeladenVonName, rausgeworfenVonName
3 , michel, 2            , 1              , peter            , heidi

Mein Anfang sieht gerade so aus.

SELECT  
    `tbl1`.`id`,  
    `tbl1`.`name`,  
    `tbl1`.`eingeladenVon`,  
    `tbl1`.`rausgeworfenVon`,  
    `tbl2`.`name` AS `eingeladenVonName`  
FROM  
    `tbl` AS `tbl1`  
INNER JOIN  
    `tbl` AS `tbl2`  
ON  
    `tbl1`.`eingeladenVon` = `tbl2`.`id`  
WHERE  
    `tbl1`.`id` = 3

Leider bekomme ich damit einen leeren Datensatz wenn ich die id 2 suche und nur die id anstatt dem Namen wenn ich nach 3 suche.

Hat jemand einen Hinweis wo mein Fehler steckt?

Danke!