use*_*033 6 php mysql sql join
可能重复:
我可以将多个MySQL行连接到一个字段中吗?
我有三张桌子:
表格1: teacher
id
firstname
surname
Run Code Online (Sandbox Code Playgroud)
表#2: course
id
name
Run Code Online (Sandbox Code Playgroud)
表3: courses_has_teachers
course_id
teacher_id
Run Code Online (Sandbox Code Playgroud)
我想得到的是教师信息的课程信息.我已经尝试过这个查询:
SELECT * FROM
teacher, course, courses_has_teachers
WHERE
courses_has_teachers.teacher_id = teacher.id
AND
course.id = courses_has_teachers.course.id
Run Code Online (Sandbox Code Playgroud)
我得到了我想要的东西,但是:如果一门课程有一位以上的老师,我想把结果结合起来.我希望得到一个包含课程信息和教师列表的简单行,而不是具有相同课程信息的多行.
不喜欢这样:
Name | Teacher
--------------------
Course 1 | Person 1
Course 1 | Person 2
Run Code Online (Sandbox Code Playgroud)
但是这个:
Name | Teacher
------------------------------
Course 1 | Person 1, Person 2
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
使用GROUP_CONCAT.尝试这个,
SELECT a.name, GROUP_CONCAT(CONCAT(firstname, ' ', surname))
FROM course a
INNER JOIN courses_has_teachers b
ON a.id = b.course_id
INNER JOIN teacher c
ON b.teacher_id = c.iD
GROUP BY a.name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6327 次 |
| 最近记录: |