Php SQL(mysql)-从所有父用户中选择不同的“产品”
我只需要根据ID对订单后的产品进行分组,我认为这是非常常见的事情,但每次我都有问题 这是递归嵌套 表Php SQL(mysql)-从所有父用户中选择不同的“产品”,php,mysql,sql-server,Php,Mysql,Sql Server,我只需要根据ID对订单后的产品进行分组,我认为这是非常常见的事情,但每次我都有问题 这是递归嵌套 表产品 id code user_id name 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 数据产品 id code user_id nam
产品
id
code
user_id
name
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
数据产品
id
code
user_id
name
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\u nest
id
parent_id
delta_level
数据user\u nest
:
1 1 0
2 2 0
2 1 1
3 3 0
3 2 1
3 1 2
这意味着以下用户嵌套:
- 一,
- 二,
- 三,
- 二,
- 用户拥有默认产品并可以看到它
- 用户可以更改产品
- 用户可以邀请其他用户
- 新用户必须看到产品具有最接近的父用户更改
- 新用户可以执行与用户相同的操作—查看、更改、邀请
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
虽然我还没有尝试过这个查询,但我认为这将对您有所帮助。这个变体将成为解决方案。。。我得再测试一下他
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
提供您的预期结果,并与大家见面,所以我认为我的任务通常是任务,对不起。好的,我只是再次尝试解释:用户有默认产品,可以看到它,用户可以更改产品。用户可以邀请其他用户。新用户必须查看产品有父用户更改新用户可以执行与用户相同的操作-查看、更改、邀请抱歉,但不可以,即使修复给定代码,它也会返回1行,有些像您只是定义MAX(id),我们不能使用MAX(id),因为级别嵌套由级别属性控制