这个问题可能很愚蠢,但我想知道mysql中是否可行。
` Course_Table:
|--------------|-
|id | name |
----|----------|
|1 |HTML5 |
|2 |CSS3 |
|3 |JavaScript|
|4 |PHP |
|5 |MySQL |
---------------|
USER_TABLE
--------------
|id |name |
---------------
|1 |Alice |
|2 |Bob |
|3 |Caroline|
|4 |David |
|5 |Emma |
--------------
user_course
---------------------------
|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 |
--------------------------`
答案 0 :(得分: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
要进一步了解联接,请访问以下链接: