3

この質問はばかげているかもしれませんが、mysql で可能かどうか知りたいです。

` Course_Table:

|--------------|-
|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コースを持つユーザーのみを表示したいので、最初に を使用してテーブルを結合する必要があります。

GROUP_CONCAT()MySQL には、行を連結するという組み込み関数があります。

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 に答える