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

mysql 查詢子節點

老白2年前7瀏覽0評論

MySQL支持使用查詢語句查詢子節點。如果你需要查詢樹形結構中每個節點的所有子節點,那么你可以使用MySQL的遞歸查詢功能來實現。

下面是一個示例表結構,它用于存儲組織結構:

CREATE TABLE organizations (
id INT PRIMARY KEY,
name VARCHAR(50),
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES organizations(id)
);

假設我們的組織結構是以下這樣的:

1. 公司A
2. 部門A1
3. 小組A1-1
4. 小組A1-2
5. 部門A2
6. 小組A2-1
7. 公司B

如果需要查詢“部門A1”下的所有子節點,可以使用以下查詢語句:

WITH RECURSIVE cte AS (
SELECT id, parent_id, name
FROM organizations
WHERE id = 2  -- 部門A1的ID
UNION ALL
SELECT o.id, o.parent_id, o.name
FROM organizations o
INNER JOIN cte ON cte.id = o.parent_id
)
SELECT *
FROM cte;

這個查詢語句使用了MySQL的遞歸查詢功能,其中cte是一個遞歸查詢表(又稱 "公共表表達式")。在第一次查詢時,會獲取 id=2 的組織(即“部門A1”),并將其作為初始行添加到cte表中。然后,查詢會重復執行,直到沒有新的子節點可以添加為止。這是通過遞歸加入每個子節點實現的。

執行上述查詢語句后,輸出結果如下:

+----+-----------+-----------+
| id | parent_id | name      |
+----+-----------+-----------+
| 2  | 1         | 部門A1    |
| 3  | 2         | 小組A1-1 |
| 4  | 2         | 小組A1-2 |
+----+-----------+-----------+

如此,我們就可以查詢到“部門A1”下的所有子節點了。