新船长 2019-08-27 16:29 采纳率: 22.2%
浏览 1271

一个关于 GROUP_CONCAT 函数的问题

SELECT btp.phy_obj_id AS phyobjid,GROUP_CONCAT(btf.file_url SEPARATOR ',') AS fileurl,btp.phy_obj_ip AS phyobjip
FROM b_task_phy btp
LEFT JOIN b_task_file btf ON btp.file_id = btf.id
WHERE btp.task_id = 9 AND btp.STATUS IN(0,3) GROUP BY btp.phy_obj_id;
图片说明
图片说明

上面是一个连表查询的SQL,查询之后返回一个List< Map >

(插播个小问题:怎么让这个List< Map >的尖括号和Map之间没空格又能显示出来,不明白我说啥的可以去提问里输一下.)

额,回归正题. 现在由于各种原因我不能用连表查询只能单表, so
SELECT btp.phy_obj_id AS phyobjid,btp.phy_obj_ip AS phyobjip,btp.`file_id`
FROM b_task_phy btp
WHERE btp.task_id = 9 AND btp.STATUS IN(0,3) GROUP BY btp.phy_obj_id;图片说明

以及
SELECT GROUP_CONCAT(file_url SEPARATOR ',') AS file_url
FROM b_task_file
WHERE id IN ( file_id );图片说明

IN 里面的值由前一个SQL查询所得的 file_id 组成的集合

前提条件说完了, 我的问题就是用这种单表查询所得到的List< Map > 怎么后台处理(java)得到和连表查询一样的结果. 或者有什么更好的方法.

  • 写回答

1条回答 默认 最新

  • paavochan 2019-08-27 17:27
    关注

    你是想要将你后面两个SQL查询出来的数据拼接成和第一个连表查询出来的数据一致是吗?你可以将后面两个SQL查询出来的数据,通过file_id进行相同对比放入到一个新的List中,这样你就可以得到一个和连表查询数据一样的结果了。你可以试试!

    评论

报告相同问题?

悬赏问题

  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python