文章摘要
这篇文章主要介绍了一种利用PostgreSQL的CTE(常见表表达式)和临时表来优化递归查询的方法,以提高查询效率。文章通过代码示例展示了如何通过WITH和AS关键字构建CTE,以及如何通过内联查询(UNION ALL)递归地获取节点数据,并将结果存储在临时表中。这种方法能够有效减少重复计算,从而提升性能。文章的核心内容是通过巧妙地使用CTE和临时表,优化PostgreSQL的递归查询性能。
WITH fw_requestion_note_temp(old_apply_id) AS ( –取根节点放入临时表
SELECT old_apply_id FROM fw_requestion_note –WHERE old_apply_id=’e741470e-8b5c-4f91-9b03-c7474d103aef’
–根据已取到的数据递归取其字节点的数据
UNION ALL SELECT fw.old_apply_id FROM fw_requestion_note fw
INNER JOIN fw_requestion_note_temp temp ON fw.apply_id=temp.old_apply_id ) SELECT old_apply_id FROM fw_requestion_note_temp
© 版权声明
文章版权归作者所有,未经允许请勿转载。