我有一张员工表,如下所示:
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。
答案 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)