MySql将一些列合并到一行中
我有一个员工表,如下所示:MySql将一些列合并到一行中,mysql,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
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
还有一个度表,如下所示:
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
上表存储了员工获取的各种学位
我需要如下输出:
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。这里有一种方法可以实现类似的效果,但与您的期望不完全相同
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)
这里有一种实现类似效果的方法,但与您的期望不完全相同
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)
谢谢你的帮助,但是没有办法把学院信息放在不同的栏目里吗?@MayankPorwal检查这篇文章是否有用:谢谢你的帮助,但是没有办法把学院信息放在不同的栏目里吗?@MayankPorwal检查这篇文章是否有用:有多少学院?有没有可能有人在两所以上的大学就读过?哪些学院应该在
College\u 1
列中,哪些在College\u 2
列中?@xpy。。雇员可以从任何数量的学院获得任何数量的学位。所有这些数据都将存储在Degrees表中。我需要找出一份清单,上面列出每个员工上过的大学数量。因此,College_1和College_2列可以根据员工的不同而增加。然后您需要透视表,请参见此处:存在多少所学院?有没有可能有人在两所以上的大学就读过?哪些学院应该在College\u 1
列中,哪些在College\u 2
列中?@xpy。。雇员可以从任何数量的学院获得任何数量的学位。所有这些数据都将存储在Degrees表中。我需要找出一份清单,上面列出每个员工上过的大学数量。因此,列College_1和College_2可以根据员工的不同而增加。然后您需要透视表,请参见此处: