Vinzenz Mai: [MySQL] Subselect Mutter / Kind

Beitrag lesen

Hallo Dannis,

ich habe eine Tabelle mit folgender Struktur: ID | Name | MutterID (Standard 0) | Kreis

Ich möchte nun alle Personen aus dieser Tabelle aus einem bestimmt Kreis (2) abfragen. Die 'Kinder' werden leider ohne Kreis gespeichert.

Ich frage nun alle Einträge mit Kreis = 2 ab und möchte auch alle zugehörigen Kinder aus derselben Datenbank joinen. Kinder sind mit der MasterID (=ID) an Ihre Mutter gekoppelt.

wenn ich Dich richtig verstanden habe, möchtest Du in etwa das:

-- Alle Personen, denen Kreis 2 direkt zugeordnet sind  
SELECT  
    ID,  
    Name,  
    MasterID,  
    Kreis  
FROM  
    tabelle  
WHERE  
    Kreis = 2  
-- verbunden mit allen Personen, deren Mutter aus Kreis 2 ist  
UNION  
SELECT  
    ID,  
    Name,  
    MasterID,  
    Kreis  
FROM  
    tabelle  
WHERE                     -- wobei nur die Datensätze interessieren  
    MasterID IN (         -- deren MasterID  
        SELECT            -- in der Auswahl der  
            t2.ID         -- IDs vorkommt  
        FROM              -- (d.h. deren Mutter aus Kreis 2 ist)  
            tabelle t2  
        WHERE             -- die  
            Kreis = 2     -- direkt aus Kreis 2 sind  
    )  

Statt fehlerhaften SQLs wäre es hilfreicher gewesen, ein paar Beispieldatensätze und das gewünschte Ergebnis vorzustellen, mit der Begründung warum das gewünschte Ergebnis so wäre.

Freundliche Grüße

Vinzenz