我需要你的建议,如何查询这种情况。
我有Table Thread
,字段为:
-id
-author_id
-content_id
-parent_id
-type
以下是表thread中的行:
id author_Id content_id parent_id type
1 3 60 3
2 3 1 1 2
3 3 2 1 2
4 3 61 3
5 3 1 4 2
6 3 2 4 2
7 3 63 1
8 3 62 1
如何查询包含孩子的父母?提前致谢
答案 0 :(得分:0)
如果您只想获得包含父母数据的孩子的列表,那么此query应该有效:
SELECT t1.id, t1.author_id, t1.content_id, t1.type, IFNULL(GROUP_CONCAT(t2.id), '') as children
FROM Thread t1
LEFT JOIN Thread t2
ON t2.parent_id = t1.id
GROUP BY t1.id
输出:
id author_id content_id type children
1 3 60 3 2,3
2 3 1 2
3 3 2 2
4 3 61 3 5,6
5 3 1 2
6 3 2 2
要仅为有孩子的父母提供数据,请将LEFT JOIN
更改为JOIN
:
SELECT t1.id, t1.author_id, t1.content_id, t1.type, IFNULL(GROUP_CONCAT(t2.id), '') as children
FROM Thread t1
JOIN Thread t2
ON t2.parent_id = t1.id
GROUP BY t1.id
输出:
id author_id content_id type children
1 3 60 3 2,3
4 3 61 3 5,6