PHP MySQL连接表作为JSON
发布时间:2020-12-13 22:27:21 所属栏目:PHP教程 来源:网络整理
导读:参见英文答案 How create json format with group-concat mysql?????????????????????????????????????6个 我有两个不同的表 – 一个称为“产品”,其中包含有关在线商店的产品信息,另一个称为“图像”,其中包含相应的产品图像(每个产品有几个图像). 我想在主
参见英文答案 >
How create json format with group-concat mysql?????????????????????????????????????6个
我有两个不同的表 – 一个称为“产品”,其中包含有关在线商店的产品信息,另一个称为“图像”,其中包含相应的产品图像(每个产品有几个图像). 我想在主表“products”上加入表“images”,并以JSON格式输出结果. 表“产品”如下所示(简化): id | name ----|-------- 57 | apple 58 | tomato 59 | ... 并且产品图像的表格“图像”: img_id | img | p_id |?listorder -------|-------------|------|---------- 32 | apple1.jpg | 57 | 1 33 | apple2.jpg | 57 | 2 34 | tomato1.jpg | 58 | 1 35 | ... | ... |?... 到现在为止,我的查询是这样的: $sql = "SELECT p.id as p_id,p.name as p_name,i.* FROM products p JOIN (SELECT * FROM images WHERE listorder=1) AS i ON (i.p_id = p.id)"; 因此输出(在将数据提取到数组并转换为JSON之后)看起来像这样: [{ "id": "57","name": "apple","img": "apple1.jpg" },{ "id": "58","name": "tomato","img": "tomato1.jpg" }] 所以我的问题是:我如何输出以下内容? [{ "id": "57","img": [{"img_id": "32","img": "apple1.jpg"},{"img_id": "33","img": "apple2.jpg"}] },"img": [{"img_id": "34","img": "tomato1.jpg"}] }] 解决方法SELECT p.id as p_id,group_concat(concat('{"img_id":"',i.img_id,'"img":"',i.img,'"}') separator ',') as img FROM products p JOIN (SELECT * FROM images WHERE listorder=1) AS i ON (i.p_id = p.id) GROUP BY p.id,p.name (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |