3

这个问题可能很傻,但我想知道在 mysql 中是否有可能。

` 课程表:

|--------------|-
|id | name     |
----|----------|
|1  |HTML5     |
|2  |CSS3      |
|3  |JavaScript|
|4  |PHP       |
|5  |MySQL     |
---------------|

用户表

--------------
|id |name    |
---------------
|1  |Alice   |   
|2  |Bob     |
|3  |Caroline|
|4  |David   | 
|5  |Emma    |
--------------

用户课程

---------------------------
|id |  userid      |course|
---------------------------
|1  |   1      | 1    |
|2  |   1      | 2    |
|3  |   1      | 4    |
|4  |   3      | 1    |
|5  |   3      | 5    |
---------------------------`

我希望我的结果是这样的

` --------------------------
 | username  |  course     |
  -------------------------|
 |Alice    | HTML,CSS3,php |
 |Caroline | HTML,MYSQL    |
 --------------------------`
4

1 回答 1

4

您需要先使用加入表格,INNER JOIN因为您只想向用户显示课程。

MySQL 中有一个内置函数,称为GROUP_CONCAT()连接行。

SELECT  a.name,
        GROUP_CONCAT(c.name) courseList
FROM    user_table a
        INNER JOIN user_course b
            ON a.id = b.userid
        INNER JOIN course_table c
            ON b.course = c.id
GROUP   BY a.name

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-10-09T05:57:02.640 回答