使用CTE遍历循环查找树

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
WITH CTE AS (
SELECT a.PostId, a.ParentId,a.DeleteMark
FROM base_post a
Left JOIN base_post b ON b.ParentId = a.ParentId
WHERE b.F_PostId = '{postId}'
AND b.F_TenantId = '{tenantId}'
)

SELECT DISTINCT t3.*
FROM CTE a
RIGHT JOIN userrelation t2
ON t2.ObjectId = a.PostId
RIGHT JOIN user t3 ON t3.UserId = t2.UserId
WHERE a.F_DeleteMark = 0
AND t3.F_DeleteMark = 0
AND t3.F_EnabledMark = 1