是否可以创建层次结构但在 Postgres 中有多个行?
Is it posible to create hierarchy but with multiple rows in Postgres?
我可以用一行结果创建层次结构(使用来自我的 的查询),但是当它有多行时我不知道从哪里开始。
这是我的 table:
id| parent_id| name|
-------|-----------|--------------------------|
1| [NULL]| United States|
2| [NULL]| Japan|
3| 1| New York|
4| 3| Brooklyn|
5| 6| Los Angeles|
6| 1| California|
7| 6| Dixon|
8| 2| Kyoto|
9| 2| Tokyo|
name
有 null parent_id
是一个宏大的 parent。那么,如何查询生成这样的结果呢?
Country| States/Province| City|
|-------------------------|-------------------|---------------|
| United States| New York| Brooklyn|
| United States| California| Los Angeles|
| United States| California| Dixon|
| Japan| Kyoto| [NULL]|
| Japan| Tokyo| [NULL]|
看起来像是 table 上的简单自连接,因为您感兴趣的级别数有限:
select co.name as country,
p.name as "State/Province",
ct.name as city
from hierarchy co
left join hierarchy p on p.parent_id = co.id
left join hierarchy ct on ct.parent_id = p.id
where co.parent_id is null
order by co.name;
我可以用一行结果创建层次结构(使用来自我的
这是我的 table:
id| parent_id| name|
-------|-----------|--------------------------|
1| [NULL]| United States|
2| [NULL]| Japan|
3| 1| New York|
4| 3| Brooklyn|
5| 6| Los Angeles|
6| 1| California|
7| 6| Dixon|
8| 2| Kyoto|
9| 2| Tokyo|
name
有 null parent_id
是一个宏大的 parent。那么,如何查询生成这样的结果呢?
Country| States/Province| City|
|-------------------------|-------------------|---------------|
| United States| New York| Brooklyn|
| United States| California| Los Angeles|
| United States| California| Dixon|
| Japan| Kyoto| [NULL]|
| Japan| Tokyo| [NULL]|
看起来像是 table 上的简单自连接,因为您感兴趣的级别数有限:
select co.name as country,
p.name as "State/Province",
ct.name as city
from hierarchy co
left join hierarchy p on p.parent_id = co.id
left join hierarchy ct on ct.parent_id = p.id
where co.parent_id is null
order by co.name;