3

私はこのようなテーブルを持っています

ID  Name    Mother  Father
1   Sue     NULL    NULL
2   Ed      NULL    NULL
3   Emma    1       2
4   Jack    1       2
5   Jane    NULL    NULL
6   Bonnie  5       4
7   Bill    5       4

そして、私は以下のように出力する必要があります

ID  Name    Mother  Father
3   Emma    sue     ed
4   jack    sue     ed
6   bonnie  jane    jack
7   bill    jane    jack

join n cte を使用してクエリを作成しようとしましたが、ロジックを思い付くことができませんでした。誰か助けてください。

4

3 に答える 3

4
SELECT t.ID, t.Name, m.Name, f.Name
FROM your_table t
INNER JOIN your_table m ON m.ID = t.Mother
INNER JOIN your_table f ON f.ID = t.Father

and/orノードLEFT JOINのないレコードを含める場合に使用します。MotherFather

SELECT t.ID, t.Name, ISNULL(m.Name, 'Orphan') Mother, ISNULL(f.Name, 'Orphan') Father
FROM your_table t
LEFT JOIN your_table m ON m.ID = t.Mother
LEFT JOIN your_table f ON f.ID = t.Father
于 2012-04-05T10:38:37.697 に答える
0

このようなことを試してください:

select 
    p.id, p.name, p1.name as mother, p2.name as father
from people p
inner join people p1 on p1.id = p.mother
inner join people p2 on p2.id = p.father
于 2012-04-05T10:40:48.700 に答える