PostgreSQL中的递归查询。SELECT *[英] Recursive query in PostgreSQL. SELECT *

本文是小编为大家收集整理的关于PostgreSQL中的递归查询。SELECT *的处理方法,想解了PostgreSQL中的递归查询。SELECT *的问题怎么解决?PostgreSQL中的递归查询。SELECT *问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有递归查询来检索给定人的所有孩子

WITH RECURSIVE recursetree(id, parent_id) AS (
    SELECT id, parent_id FROM tree WHERE parent_id = 0
  UNION
    SELECT t.id, t.parent_id
    FROM tree t
    JOIN recursetree rt ON rt.id = t.parent_id
  )
SELECT * FROM recursetree;

如您所见,我正在指定要检索的列列表.但我想使用 SELECT * (我在真实表中有很多列,将来可以更改).有没有办法在不单独定义每一列的情况下获取所有列?

推荐答案

您不需要在 WITH 部分指定列.如果你忽略它,列名将由 UNION:

中的第一个查询决定
WITH RECURSIVE recursetree AS (
    SELECT * FROM tree WHERE parent_id = 0
  UNION
    SELECT t.*
    FROM tree t
    JOIN recursetree rt ON rt.id = t.parent_id
)
SELECT * 
FROM recursetree;

本文地址:https://www.itbaoku.cn/post/1763757.html