我只需要在按照ID排序后对产品进行分组,我认为这是经常发生的事情,但每次我都遇到问题。
它是递归嵌套。
表products
id
code
user_id
name
数据products
1 code1 1 product_user1_code1
2 code2 1 product_user1_code2
3 code3 1 product_user1_code3
4 code2 2 product_user2_code2
5 code1 3 product_user3_code1
表user_nest
id
parent_id
delta_level
数据user_nest
:
1 1 0
2 2 0
2 1 1
3 3 0
3 2 1
3 1 2
表示用户嵌套:
===
对于给定的示例,我希望得到3行:
product_user3_code1(由我编辑:3) product_user2_code2(由我的父ID编辑:2) product_user1_code3(由admin id:1定义)
有人可以帮忙吗?
答案 0 :(得分:0)
你可以试试这个: -
SELECT max(t1.id), t1.code, t1.user_id, t2.id, t2.parent_id, t2.delta_level
FROM `user_nest` t1
INNER JOIN
`product` t2 ON t2.`user_id` = t1.`parent_id`
WHERE t1.`id` = 3
GROUP BY t1.code, t1.user_id, t2.id, t2.parent_id, t2.delta_level
虽然我没有尝试过此查询,但我认为这会对您有帮助。
答案 1 :(得分:0)
这个变种变成了解决方案......我必须再测试一下
SELECT
t1.id
, t1.parent_id
, MIN(t1.level) min_level
, t2.*
FROM
user_nest t1
INNER JOIN
product t2 ON t2.user_id = t1.parent_id
WHERE
t1.id = 3
GROUP BY
t2.code