2

我有两个表 casetemp 和 medicication_master

患者有字段

ID 姓名 年龄 性别 医药号
1 xyz 23 1,2
2 美国广播公司 20 F 3

医学有领域

ID 药名 描述
1 交香素 发烧标签
2 埃扎 洗发水
3 赞塔 止痛药

我想要mysql左连接输出如下:

[{
  "id":"1",
  "name":"xyz",
  "age":"23",
  "sex":"M",
  "medicine_id":"1,2",
  "medicine_Data":[
      {
         "id":"1"
         "medname":"crosin",
         "desc":"fever tab"
      },
      {
         "id":"2"
         "medname":"etzaa",
         "desc":"shampoo"
      }]
  },
  {
  "id":"2",
  "name":"abc",
  "age":"20",
  "sex":"F",
  "medicine_id":"3",
  "medicine_Data":[{
         "id":"3"
         "medname":"zaanta",
         "desc":"pain killer"
      }]
  }]

我使用的查询是

SELECT json_object(
  'id', b.id,
  'name',b.name,
  'age',b.age,
  'sex',b.sex,
  'medicine_id',b.medicine_id,
  'medicine_data', json_arrayagg(json_object(
    'id', pt.id,
    'medname', pt.medname,
    'desc',pt.desc,
  ))
  )
FROM patient b LEFT JOIN medication_master pt
ON b.medicine_id = pt.id
where b.id=1
GROUP BY b.id;

提前致谢

4

0 回答 0