sql,同表关联,如何将查询结果在一行显示?

现有mysql数据库表结构如下:

table1表:

id parent_id value1 value2 value3 value4
1 a b c d
2 1 e f g h
3 1 i j k l

其中第二条及第三条的parint_id与第一条的id进行关联,即第二条、第三条为第一条的子集。

现在想构造sql语句,完成以下效果:
1,支持value1、value2、value3、value4进行搜索;
2,通过parnt_id为空,查询所有“非子集”的数据,select * from table1 where parnt_id is null;
3,数据量比较大,需要支持分页 limit 0,10;
4,查询该sql查询结果支持树形结构展示。

如何实现呢?

`
{
"id":1,
"value2":"b",
"value3":"c",
"value4":"d",
"children":[
        {
            "id":2,
            "value1":"e",
            "value2":"f",
            "value3":"g",
            "value4":"h"
        },
        {
            "id":3,
            "value1":"i",
            "value2":"j",
            "value3":"k",
            "value4":"l"
        }
    ]
}
`

阅读 3.8k
1 个回答

sql 做不到,建议读取数据后在后端转换为树形结构再传回前端即可。数组与树的相互转换是经典算法问题,不想自己研究的话可以直接下载类库,基本上主流语言都有相似类库。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题