将列基于不同的id分组

时间:2017-08-19 07:24:46

标签: mysql database many-to-many

我有三张桌子,大学课程,大学课程,其中大学课程是大学课程与课程之间多对多关系的中间表。

college_details

+------------+--------------+
| college_id | college_name |
+------------+--------------+
|          1 | abc, Nagpur  |
|          2 | xyz, Nagpur  |
|          3 | mnop, Nagpur |
+------------+--------------+

college_courses

+------------+--------------+
| college_id | course_id    |
+------------+--------------+
|          1 |            1 |
|          1 |            5 |
|          2 |            3 |
|          3 |            5 |
+---------------------------+

当然

+----------+-------------+
|course_id | course_name |
+----------+-------------+
|        1 | B.E         |
|        2 | M.E         |
|        3 | M.Tech      |
|        4 | B.Tech      |
|        5 | M.B.A       |
+----------+-------------+


SELECT cd.college_id
     , cd.college_name
     , c.course_name 
  FROM college_details AS cd 
  LEFT 
  JOIN college_courses AS cc 
    ON cc.college_id = cd.college_id 
  LEFT 
  JOIN course AS c 
    ON  cc.course_id =  c.course_id

从上面的查询我得到下表。

+------------+---------------+-------------+
| college_id | college_name | course_name |
+------------+---------------+-------------+
|          1 | abc, college | be          |
|          1 | abc, college | mba         |
|          2 | xyz, college | me          |
|          3 | mnop, college | btech       |
+------------+---------------+-------------+

查询 - > "SELECT cd.college_id,cd.college_name,GROUP_CONCAT(c.course_name) FROM college_details AS cd LEFT JOIN college_courses AS cc ON cc.college_id = cd.college_id LEFT JOIN course AS c ON cc.college_id = c.course_id ";

从上面的查询我得到下表。

+------------+--------------+-----------------------------+
| college_id | college_name | GROUP_CONCAT(c.course_name) |
+------------+--------------+-----------------------------+
|          1 | abc, college | be,be,me,btech              |
+------------+--------------+-----------------------------+

但我想要的是下表。

+------------+---------------+-------------+
| college_id | college_name  | course_name |
+------------+---------------+-------------+
|          1 | abc, college  | be,mba      |
|          2 | xyz, college  | me          |
|          3 | mnop, college | btech       |
+------------+---------------+-------------+

0 个答案:

没有答案