需要选择具有mysql度数的所有用户

时间:2016-09-11 01:55:58

标签: mysql database

如果我在MySQL中有一个包含以下数据的表:

id,name

和度表

id,user_id,degree,created_at

如何将其变为以下格式?

enter image description here

用户名及其与学位相关的所有学位和日期

2 个答案:

答案 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;

上的INNER JOIN 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