Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL(mysql)-从所有父用户中选择不同的“产品”_Php_Mysql_Sql Server - Fatal编程技术网

Php SQL(mysql)-从所有父用户中选择不同的“产品”

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对订单后的产品进行分组,我认为这是非常常见的事情,但每次我都有问题

这是递归嵌套

产品

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
这意味着以下用户嵌套:

  • 一,
    • 二,
      • 三,
===

  • 用户拥有默认产品并可以看到它
  • 用户可以更改产品
  • 用户可以邀请其他用户
  • 新用户必须看到产品具有最接近的父用户更改
  • 新用户可以执行与用户相同的操作—查看、更改、邀请
例如,我希望得到3行:

产品用户3代码1(由me id:3编辑) 产品\用户2 \代码2(由我的父id编辑:2) 产品\用户1 \代码3(由管理员id定义:1)

有人能帮忙吗?

你可以试试这个:-

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),因为级别嵌套由级别属性控制