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分组代码>