如果我在MySQL中有一个包含以下数据的表:
id,name
和度表
id,user_id,degree,created_at
如何将其变为以下格式?
用户名及其与学位相关的所有学位和日期
答案 0 :(得分:0)
好的我认为你要问的是查看第一个表并根据第二个表中第一个table = user_id中的id显示/回显第二个表中的所有匹配记录。我不太了解您包含的示例表布局,但是.....假设表用户看起来像: -
(1,'john'),
(2,'彼得'),
(3,'mary'),
(4,'jane');
和表度看起来像
(1,1,'john','2016-09-06',5),
(2,3,'mary','2016-09-28',9),
(3,1,'john','2016-09-16',7),
(4,2,'彼得','2016-09-29',2),
(5,4,'jane','2016-09-02',4),
(6,4,'jane','2016-09-27',8);
(id,来自用户表的user_id,名称,日期,值)
SELECT user。,degrees。
来自user
在user.id = degrees.user_id;
degrees
会给: -
1 john 1 1 john 2016-09-06 5
1 john 3 1 john 2016-09-16 7
2彼得4 2彼得2016-09-29 2
3 mary 2 3 mary 2016-09-28 9
4 jane 5 4 jane 2016-09-02 4
4 jane 6 4 jane 2016-09-27 8
我已经包含了比您需要的更多结果和值列,因此您有几种可能的方法来检查这一点。显然你也可以使SORT和GROUP更有意义,只需选择并显示你想要的值 - 希望这有帮助
答案 1 :(得分:-1)
SELECT degrees.degree,users.name,GROUP_CONCAT(degrees.degree SEPARATOR',')FROM degrees INNER JOIN用户on degrees.user_id = users.id GROUP BY degrees.user_id