【发布时间】:2021-09-08 00:49:34
【问题描述】:
运行此查询后
SELECT cat.id,cat.name,pro.id,pro.name,pro.price
FROM `products` as pro
JOIN categories as cat on pro.cat_id = cat.id
ORDER BY cat.id;
我得到如图所示的结果。我想用json格式的php mysql来获取这个
【问题讨论】:
运行此查询后
SELECT cat.id,cat.name,pro.id,pro.name,pro.price
FROM `products` as pro
JOIN categories as cat on pro.cat_id = cat.id
ORDER BY cat.id;
我得到如图所示的结果。我想用json格式的php mysql来获取这个
【问题讨论】:
您可以将JSON_ARRAYAGG 和JSON_OBJECT 用作:
SELECT cat.id, cat.name, JSON_ARRAYAGG(
JSON_OBJECT('pro_name',pro.name,'pro_pice',pro.price)
) prod
FROM products as pro
JOIN categories as cat on pro.cat_id = cat.id
GROUP BY cat.id, cat.name
ORDER BY cat.id;
结果:
+====+===========+================================================================================+
| id | name | prod |
+====+===========+================================================================================+
| 1 | Category1 | [{"pro_name": "Prod1", "pro_pice": 10}, {"pro_name": "Prod2", "pro_pice": 12}] |
+----+-----------+--------------------------------------------------------------------------------+
| 2 | Category2 | [{"pro_name": "Prod3", "pro_pice": 10}] |
+----+-----------+--------------------------------------------------------------------------------+
【讨论】: