Php 选择10位家长及其所有子女

Php 选择10位家长及其所有子女,php,mysql,sql,Php,Mysql,Sql,我有一个简单的表格:id,parent\u id,content 父项id为0的项目是父项,父项id为0的项目是子项 现在,我想选择10位家长和他们所有的孩子 使用2查询,很容易在查询1中获取父级,然后在查询2中获取所有子级 但我希望它能在一个查询中完成 我写了这篇文章,但它不起作用: select * from blogs where parent_id in (select id from blogs w

我有一个简单的表格:
id
parent\u id
content

父项id为0的项目是父项,父项id为0的项目是子项

现在,我想选择10位家长和他们所有的孩子

使用2查询,很容易在查询1中获取父级,然后在查询2中获取所有子级

但我希望它能在一个查询中完成

我写了这篇文章,但它不起作用:

select * 
from blogs 
where parent_id in (select id 
                    from blogs 
                    where parent_id = 0 
                    order by id desc 
                    limit 10) 
union all 
select * 
from blogs 
where parent_id = 0 
order by id 
desc limit 10

请检查下面提到的解决方案

SELECT 
    t1.id as parent_id,
    t1.content as parent,
    GROUP_CONCAT(t2.content) as children
from blogs t1
INNER JOIN blogs t2 ON t2.parent_id = t1.id
WHERE t1.parent_id = 0
GROUP BY t1.id
LIMIT 10;
请在上述查询中更改
表名
字段名

如果对您不起作用,请告诉我。

这会产生什么?那么您的mysql版本是什么呢?共享您的查询将此
t1.id替换为父项\u id,t1.*替换为父项,将GROUP\u CONCAT(t2.*)替换为子项
t1.id替换为父项\u id,将t1.content替换为父项,将GROUP\u CONCAT(t2.content)替换为子项
如果您需要整行父项,请使用下面的查询<代码>选择t1.*,将组CONCAT(t2.content)作为测试t1的子级,在t2.parent\u id=t1.id上连接测试t2,其中t1.parent\u id=0按t1.id限制10分组