Php MySQL查询返回缩进的子值

Php MySQL查询返回缩进的子值,php,mysql,sql,wordpress,csv,Php,Mysql,Sql,Wordpress,Csv,我知道这是一个令人误解和困惑的标题,但我不知道该如何表达我需要做的事情 我目前有一个MySQL查询,返回以下示例结果: 但我希望查询不要对子发票编号开始的每行值重复前6列。我希望看到它返回这样的内容: 这样,它就不会一次又一次地重复相同的非需求信息,而只是将发票行项目分解成它们自己的行。这在MySQL中可能吗?我在PHPmyAdmin做这一切 谢谢 给定 MariaDB [sandbox]> select * from docs; +----+--------+--------+ |

我知道这是一个令人误解和困惑的标题,但我不知道该如何表达我需要做的事情


我目前有一个MySQL查询,返回以下示例结果:

但我希望查询不要对子发票编号开始的每行值重复前6列。我希望看到它返回这样的内容:

这样,它就不会一次又一次地重复相同的非需求信息,而只是将发票行项目分解成它们自己的行。这在MySQL中可能吗?我在PHPmyAdmin做这一切

谢谢

给定

MariaDB [sandbox]> select * from docs;
+----+--------+--------+
| id | id_sub | id_obj |
+----+--------+--------+
|  1 |      1 |      1 |
|  2 |      1 |      2 |
|  3 |      1 |      3 |
|  4 |      1 |     10 |
|  5 |      1 |      1 |
|  6 |      1 |     10 |
|  7 |      1 |      3 |
|  8 |      1 |     10 |
|  9 |      1 |      1 |
| 10 |      2 |     30 |
| 11 |      2 |     10 |
| 12 |      2 |      1 |
| 13 |      2 |     10 |
| 14 |      4 |      1 |
| 15 |      5 |      1 |
| 16 |      6 |      1 |
| 17 |      7 |      1 |
| 18 |      7 |     10 |
| 19 |      7 |     11 |
+----+--------+--------+
19 rows in set (0.00 sec)
然后可以使用变量检测id_sub中的更改

select   if(id_sub <> @p, id_sub,'') id_sub,
         @p:=id_sub p
from docs cross join(select @p:='') p
order by id

与其发布图像(例如,有些人看不到,它们在我当前的网络上被阻止),您可以用一个数据示例做一个示例吗?是的,将一些示例数据作为文本添加到您的问题或SQLFIDLE“我当前有一个返回以下示例结果的MySQL查询”post de query..看起来您需要该查询,您已经有了该查询,将其用作子查询,并在列invoice\u number上旋转,并在行描述中使用GROUP\u CONCAT。和订购数量。我不知道如何让sqlfiddle工作……在运行IF语句的同时,是否可以选择多于1个字段?请阅读concat。
MariaDB [sandbox]> select * from docs;
+----+--------+--------+
| id | id_sub | id_obj |
+----+--------+--------+
|  1 |      1 |      1 |
|  2 |      1 |      2 |
|  3 |      1 |      3 |
|  4 |      1 |     10 |
|  5 |      1 |      1 |
|  6 |      1 |     10 |
|  7 |      1 |      3 |
|  8 |      1 |     10 |
|  9 |      1 |      1 |
| 10 |      2 |     30 |
| 11 |      2 |     10 |
| 12 |      2 |      1 |
| 13 |      2 |     10 |
| 14 |      4 |      1 |
| 15 |      5 |      1 |
| 16 |      6 |      1 |
| 17 |      7 |      1 |
| 18 |      7 |     10 |
| 19 |      7 |     11 |
+----+--------+--------+
19 rows in set (0.00 sec)
select   if(id_sub <> @p, id_sub,'') id_sub,
         @p:=id_sub p
from docs cross join(select @p:='') p
order by id
 +--------+---+
| id_sub | p |
+--------+---+
| 1      | 1 |
|        | 1 |
|        | 1 |
|        | 1 |
|        | 1 |
|        | 1 |
|        | 1 |
|        | 1 |
|        | 1 |
| 2      | 2 |
|        | 2 |
|        | 2 |
|        | 2 |
| 4      | 4 |
| 5      | 5 |
| 6      | 6 |
| 7      | 7 |
|        | 7 |
|        | 7 |
+--------+---+
19 rows in set (0.00 sec)