我有一张名为'老师'的桌子。 教师表有以下几个字段
我想根据主题(主题组)显示所有教师。
这是我当前的查询:
SELECT * FROM teachers WHERE status = '1' GROUP BY subjectgroup
它正确地对教师进行分组,但每个科目只显示1名教师。
输出:
科学:
英文:
数学:
但我想要的是按主题列出的教师名单
小组中应该有多位老师。
感谢您的帮助!
答案 0 :(得分:1)
Group by
会将这些行分组为一行。听起来你想要order by
主题
答案 1 :(得分:1)
对于你正在做的事情,你想要ORDER BY,它按给定的字段排序。
GROUP BY是您尝试获取摘要数据的时候,就像您在SELECT语句中获得SUM()或AVERAGE()或COUNT()时一样。它告诉SQL如何分解为这些函数组合的项目。
答案 2 :(得分:0)
我会建议这样的事情:
SELECT DISTINCT subjectgroup, GROUP_CONCAT(firstname SEPARATOR ' ')
FROM teachers
WHERE status = 1
GROUP BY subjectgroup;
Group concat是MySQL中需要的功能
答案 3 :(得分:0)
这将显示以逗号分隔的教师姓名列表:
SELECT
GROUP_CONCAT(
DISTINCT (
CONCAT_WS(' ', `firstname`, `lastname`)
) SEPARATOR ', '
) AS `teacher_list`,
`subjectgroup`
FROM
`teachers`
WHERE
`status` = 'i'
GROUP BY
`subjectgroup`