我已经检查了一些其他问题,我似乎找不到任何可以回答我的具体问题。
下表是此查询的结果:
SELECT teacher.teacherID, unitName FROM teacher INNER JOIN unit ON teacher.teacherID=unit.teacherID ORDER BY teacherID ASC
我实际需要显示的结果是:
有没有办法修改我当前的查询,以便实现这一目标?我根本不确定这在MySQL中是否可行,但正如我过去所了解的那样,你永远不应该低估查询的强大功能! (这是在花时间使用凌乱的嵌套循环试图操纵数组后发现的,而是我设法在查询中完成所有操作)
编辑:SQL Fiddle
谢谢,我将不胜感激任何帮助!
答案 0 :(得分:4)
是的,您需要使用GROUP BY和GROUP_CONCAT:
SELECT teacher.teacherID, GROUP_CONCAT(unitName)
FROM teacher
INNER JOIN unit ON teacher.teacherID=unit.teacherID
GROUP BY teacher.teacherID
ORDER BY teacherID ASC
此查询直接在您的SQL小提琴中工作。
答案 1 :(得分:2)
稍微调整一下alexn的答案,将逗号后面的格式与空格匹配:
SELECT teacher.teacherID, GROUP_CONCAT(unitName SEPARATOR ', ')
FROM teacher
INNER JOIN unit ON teacher.teacherID=unit.teacherID
GROUP BY teacher.teacherID
ORDER BY teacherID ASC