Wie wählen Eltern und Kinder, die Zeilen in SQL Server

Möchte ich wählen Sie alle itens Zusammenhang user_id 53 (Eltern und Kinder) aus der folgenden Tabelle. Es sollte: 1, 2, 4, 8, 9.

my_table
--------------------------------------------
id    parent_id   user_id   sequence   depth
--------------------------------------------
1     null        50        1          1
2     1           52        1.2        2
3     1           52        1.3        2
4     2           53        1.2.4      3
5     2           52        1.2.5      3
6     3           52        1.3.6      3
7     3           51        1.3.7      3
8     4           51        1.2.4.8    4
9     4           51        1.2.4.9    4

Mit CTE konnte ich wählen Sie alle Kinder oder Eltern, aber ich konnte nicht wählen Kinder und Eltern mit nur einem query. Unten ist die cte-ich bin mit auswählen Kindern.

Element und Kinder

with cte as (
    select t.id, t.parent_id, t.user_id 
    from my_table t 
    where t.user_id=53

    union all

    select t.id, t.parent_id, t.user_id 
    from my_table t
    inner join cte c on (c.parent_id=t.id)
)
select t.* from cte t;

Element und Eltern

with cte as (
    select t.id, t.parent_id, t.user_id 
    from my_table t 
    where t.user_id=53

    union all

    select t.id, t.parent_id, t.user_id 
    from my_table t
    inner join cte c on (c.id=t.parent_id)
)
select t.* from cte t;

Dank.

InformationsquelleAutor Diogo Arenhart | 2013-03-04

Schreibe einen Kommentar