如何通过另一个表的订单记录从mysql表中选择日期

时间:2013-05-31 08:55:44

标签: mysql sql

我的情况是这样的: 我有2个mysql表:用户得分

用户就像:id,name。 表得分就像:id,point,user_id;

我想取10个用户获得高分的名称,但我不知道我必须使用哪种查询。有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:4)

最简单的答案是使用ORDER BYLIMIT,但它不能处理具有相同点的重复用户。

SELECT  a.*, b.*
FROM    user a
        INNER JOIN scores b
            ON a.id = b.user_ID
ORDER   BY b.point DESC
LIMIT   10

要处理重复点,您可以使用包含前N 分数的子查询。

SELECT  a.*, b.*
FROM    user a
        INNER JOIN scores b
            ON a.id = b.user_ID
        INNER JOIN
        (
            SELECT  point
            FROM    scores
            GROUP   BY point
            ORDER   BY point DESC
            LIMIT   10
        ) c ON b.point = c.point
ORDER   BY b.point DESC

答案 1 :(得分:2)

您可能希望使用INNER JOIN查询,并按points列降序排列所需的所有相关数据并将结果限制为10

SELECT *
FROM user a
LEFT JOIN scores b
ON a.id = b.user_id
ORDER BY b.point DESC
LIMIT 10

答案 2 :(得分:-1)

使用: -

SELECT *
FROM user as u,scores as s Where u.id = s.user_id
ORDER BY s.point DESC
LIMIT 10