encounter2017

encounter2017

V2EX 第 409290 号会员,加入于 2019-05-06 11:39:40 +08:00
encounter2017 最近回复了
26 天前
回复了 wuhao1 创建的主题 MySQL 老生常谈 关于 子查询的应用
我觉得还是看业务场景,比如说我这里有一个业务场景就是需要查询树状结点下面的所有子节点信息,这种情况下用 recursive cte 查询就很方便,一次就能查完,IO 都在数据库做了,不然的话还得多次查询数据库.

一个简单的示例
```
CREATE TABLE binary_tree (
id INT PRIMARY KEY,
value VARCHAR(255),
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES binary_tree(id)
);

INSERT INTO binary_tree (id, value, parent_id) VALUES
(1, 'Root', NULL),
(2, 'Left Child', 1),
(3, 'Right Child', 1),
(4, 'Left Grandchild', 2),
(5, 'Right Grandchild', 2),
(6, 'Another Left Grandchild', 3),
(7, 'Another Right Grandchild', 3);

WITH RECURSIVE tree_cte AS (
-- Base case: select the root node
SELECT id, value, parent_id, 0 AS level, CAST(id AS text) AS path
FROM binary_tree
WHERE parent_id IS NULL

UNION ALL

-- Recursive case: select child nodes
SELECT c.id, c.value, c.parent_id, p.level + 1, CONCAT(p.path, ',', CAST(c.id AS text))
FROM binary_tree c
JOIN tree_cte p ON c.parent_id = p.id
)
SELECT id, value, parent_id, level, path
FROM tree_cte
ORDER BY path;

1,Root,,0,1
2,Left Child,1,1,"1,2"
4,Left Grandchild,2,2,"1,2,4"
5,Right Grandchild,2,2,"1,2,5"
3,Right Child,1,1,"1,3"
6,Another Left Grandchild,3,2,"1,3,6"
7,Another Right Grandchild,3,2,"1,3,7"

```
2022-12-08 11:01:07 +08:00
回复了 xikazi 创建的主题 问与答 [求助] : FFmpeg 怎么读。
/ˈef.fem.dʒiː/
2022-08-25 10:26:09 +08:00
回复了 samin 创建的主题 程序员 记一次 PostgreSQL 事故处理
用 timestamp with time zone 是不是就没这么多事情了
2022-07-28 16:27:47 +08:00
回复了 KIRAYOMATO 创建的主题 问与答 非科班转码需要学哪些计算机专业的课程?
@rekulas 没放反。因为老老实实写问题描述记录日志,大多数人都不会认真看。挑起争议话题立刻就有人来给你纠正标准做法了
错误的提问方式❌:我想要实现一个这样的场景,这是我的报错日志,我做了如下尝试,有什么办法可以解决这个问题?

正确的提问方式✅: A 就是个垃圾,你看我用 B 也能做到一样好(附上错误的实践方式)
2022-03-02 11:16:46 +08:00
回复了 CookCoder 创建的主题 程序员 斐波那契数列 n = 9292 的结果是什么?
n < 2 的时候直接返回,不太对吧。。。
前几项是 1, 1, 2, 3, ...
2022-03-02 11:07:26 +08:00
回复了 CookCoder 创建的主题 程序员 斐波那契数列 n = 9292 的结果是什么?
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   889 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 804ms · UTC 21:25 · PVG 05:25 · LAX 14:25 · JFK 17:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.