微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在单个查询中对孩子和父母进行分组?

如何解决如何在单个查询中对孩子和父母进行分组?

对于 单层嵌套 ,这似乎几乎是微不足道的:

SELECT *
FROM   transactions
ORDER  BY COALESCE(parent_id, id), id

解决方法

我有一个表,代表一个简单的父级->子级层次结构,如下所示:

             Table "public.transactions"
   Column  | Type          |  Modifiers
-----------+---------------+-----------------------------------------------------------
 id        | integer       | not null default nextval('transactions_id_seq'::regclass)
 parent_id | integer       | not null default 0
 amount    | numeric(15,4) | not null default 0.0000

我想显示子交易(其parent_id> 0的交易)分组在其各自父项下方的表。例如,

parent
   child
   child
parent
   child
parent
parent

(注意:嵌套空间仅在此处用于直观地表示层次结构,查询结果不需要它们)

我可以在单个查询中执行此操作吗?我正在运行Postgresql 9.3以防万一。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。