欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql根據子節點查詢父節點

呂致盈2年前9瀏覽0評論

在MySQL中,如果我們需要根據子節點來查詢其對應的父節點,可以使用以下的方法:

WITH RECURSIVE cte (id, parent_id, name) AS (
SELECT id, parent_id, name FROM table_name WHERE id = 1  -- 1為初始查詢的子節點id
UNION ALL
SELECT t.id, t.parent_id, t.name FROM table_name t INNER JOIN cte ON cte.parent_id = t.id
)
SELECT * FROM cte;

以上的查詢語句中,我們使用了MySQL的遞歸查詢功能(RECURSIVE)來實現樹形結構的查詢。首先,我們通過指定一個初始的子節點id來從原表中選擇該節點的所有信息作為遞歸查詢的第一次結果集:

SELECT id, parent_id, name FROM table_name WHERE id = 1

接著,我們在該結果集的基礎上,使用UNION ALL關鍵字將它與一個內連接查詢得到的子節點的信息合并起來,即:

SELECT t.id, t.parent_id, t.name 
FROM table_name t 
INNER JOIN cte ON cte.parent_id = t.id

該內連接查詢的作用是,從原表中選擇所有父節點的信息,然后和當前遞歸查詢到的子節點進行比較,如果子節點的parent_id和父節點的id相等,則將其展開。這個過程將一直重復下去,直到沒有更多的子節點可以展開為止。

最后,我們使用SELECT * FROM cte語句來顯示遞歸查詢的結果集,其中cte為遞歸查詢的結果集的別名。