如何对具有这样多个关系的列进行分组?

4ioopgfo  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(209)

自从我上次发帖已经有很长时间了(我今天头痛得要命),所以如果这个问题被解决了,我会理解的。
我正在连接多个表以获取如下所示的数据(https://meta.stackexchange.com/questions/73566/is-there-markdown-to-create-tables stackoverflow上真的没有表视图吗?)

| course_name    | student_name  |  credit_type  | 
| course_1       | student_1     |  credit_2     |
| course_1       | student_1     |  credit_3     |
| course_1       | student_1     |  credit_4     |
| course_1       | student_2     |  credit_1     |
| course_1       | student_2     |  credit_2     |
| course_1       | student_2     |  credit_3     |
| course_1       | student_2     |  credit_4     |
| course_1       | student_3     |  credit_1     |
| course_1       | student_3     |  credit_2     |
| course_1       | student_3     |  credit_3     |
| course_1       | student_3     |  credit_4     |
| course_2       | student_1     |  credit_1     |
| course_2       | student_1     |  credit_2     |
| course_2       | student_1     |  credit_3     |
| course_2       | student_1     |  credit_4     |
| course_2       | student_2     |  credit_1     |
| course_2       | student_2     |  credit_2     |
| course_2       | student_2     |  credit_3     |
| course_2       | student_2     |  credit_4     |
| course_2       | student_3     |  credit_1     |
| course_2       | student_3     |  credit_2     |
| course_2       | student_3     |  credit_3     |
...........

我想要数据分组所有学生学分每个学生,所以它看起来像这样

| course_name  |    student_name  | credit_type                              |
| course_1     |    student_1     | credit_2, credit_3, credit_4             |
| course_1     |    student_2     | credit_1, credit_2, credit_3, credit_4   |
| course_1     |    student_3     | credit_1, credit_3, credit_4             |
| course_2     |    student_1     | credit_1, credit_2, credit_4             |
| course_2     |    student_2     | credit_1, credit_2, credit_4             |
| course_2     |    student_3     | credit_1, credit_2, credit_4             |
| ............ |    ..............| ..., ..., ..., ..., ..., ..., ..., ..., .|

我知道小组会议,我只是不知道如何在这种情况下实施。请记住,这是一个遗留系统,即将被永久放下。
最直接的方法是什么?
如果你能帮助我,我将非常感激。

8aqjt8rx

8aqjt8rx1#

你只需要 GROUP BY 在两列上( course_name, student_name )此处:

SELECT
  course_name, 
  student_name, 
  GROUP_CONCAT(credit_type)
FROM your_table
GROUP BY course_name, student_name

相关问题