MySql将一些列放入单行

时间:2016-02-04 07:09:54

标签: mysql

我有一张员工表,如下所示:

Emp_id Name Salary
1      Abc   10
2      Acd   90
3      Bcd   40

并且,如下所示的学位表:

Degree_Id Degree_name College_Id College_name Emp_Id
1            UG           1          MIT          2
2            PG           3          Harvard      2
1            UG           1          MIT          1
2            PG           3          Harvard      1

上表列出了员工获得的各种学位。

我需要输出如下:

Emp_Id  College_1  College_2
2        MIT        Harvard
1        MIT        Harvard

我的查询应该是什么?我的数据库是MySql。

1 个答案:

答案 0 :(得分:0)

这是实现类似效果的一种方法,但与您的期望并不完全相同。

SELECT
Emp_id,
GROUP_CONCAT(College_name ORDER BY College_name DESC SEPARATOR '  ') Colleges
FROM degree
GROUP BY Emp_id
ORDER BY Emp_id DESC;

mysql> SELECT
    -> Emp_id,
    -> GROUP_CONCAT(College_name ORDER BY College_name DESC SEPARATOR '  ') Colleges
    -> FROM degree
    -> GROUP BY Emp_id
    -> ORDER BY Emp_id DESC;
+--------+--------------+
| Emp_id | Colleges     |
+--------+--------------+
|      2 | MIT  Harvard |
|      1 | MIT  Harvard |
+--------+--------------+
2 rows in set (0.00 sec)