我坚持做一个查询。我想考虑其他三个表的值来提取一个表的10个第一个记录。我会尝试用一个例子解释我想要的东西:
TABLES
USERS
:用户名和日期POINTS
:id_user,points COMMENTS
:id_user WON
:id_user 标准必须:拥有更多积分的10位用户,如果价值相同,发布的评论越多,最近的日期日期就越少,并且没有获胜。按此顺序。
SELECT id, username, date FROM users as us LIMIT 10 ORDER BY date DESC JOIN id_user, points FROM points as po WHERE us.id = po.id_user ORDER BY po.points DESC JOIN COUNT (id_user) FROM comments JOIN COUNT (id_user) FROM won;
我知道这是错的...... :(
答案 0 :(得分:0)
假设用户有id
字段和created
日期时间字段,我认为您正在寻找类似的内容
SELECT *
FROM Users
LEFT JOIN Points ON Points.id_user = Users.id
LEFT JOIN Comments ON Comments.id_user = Users.id
LEFT JOIN Won ON Won.id_user = Users.id
GROUP BY Users.id
ORDER BY SUM(Points.points) DESC, COUNT(Comments.id) DESC, MAX(Users.created) DESC, COUNT(Won.id) DESC