MYSQL查询四个表

时间:2013-12-30 14:36:24

标签: mysql

我坚持做一个查询。我想考虑其他三个表的值来提取一个表的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;

我知道这是错的...... :(

1 个答案:

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