我有2个表,一个是用户表,另一个是具有用户评级
的映射数据的评级表用户表
user_id | firstname | lastname
--------------------------------
1 | 1test | 1test lname
2 | 2test | 2test lname
3 | 3test | 3test lname
4 | 4test | 4test lname
5 | 5test | 5test lname
评级表
user_id | rating
------------------
1 | 4
2 | 3
3 | 5
1 | 4
结果我需要在一个查询中使用用户信息进行评级的平均值
user_id | firstname | lastname | rating
---------------------------------------------
1 | 1test | 1test lname | 4
2 | 2test | 2test lname | 3
3 | 3test | 3test lname | 5
4 | 4test | 4test lname | 0
5 | 5test | 5test lname | 0
答案 0 :(得分:1)
这是您的查询,
SELECT ut.*,AVG(rt.rating)as rating
FROM user_table ut
INNER JOIN rating_table rt ON ut.user_id = rt.user_id
答案 1 :(得分:1)
这是一个查询,你可以用它来查找所有用户的所有评级的平均值
String.prototype.colorize = function() {
return this
.replace(/&([0-9]{1,3})/g, '</span><span style="color: hsl($1, 100%, 50%)">')
.replace(/(<\/span>)(.*)/g, "$2$1");
};
答案 2 :(得分:1)
使用 LEFT JOIN 从用户表中获取所有记录,并匹配 rating 表中的记录。
试试这个:
SELECT u.user_id,
u.firstname,
u.lastname,
AVG(IFNULL(r.rating, 0)) AS rating
FROM `user` u
LEFT OUTER JOIN rating r ON u.user_id = r.user_id
GROUP BY u.user_id, u.firstname, u.lastname;