Несколько Select и Limit в одном запросе

окей. переформулирую вопрос полностью. имею растущую базу и sql запрос к ней, который должен выводить все записи из разных таблиц, но несколько записей в одной таблице он должен пересчитывать с лимитом, но, при этом, результат всего запроса должен быть с другим лимитом.

сам запрос такой:

SELECT 
    playerId, 
    matches, 
    x.kills, 
    x.match_id, 
    x.player_name, 
    x.steam_id_64 
FROM 
    hlstats_PlayerUniqueIds 
    JOIN (
        SELECT 
            count(steam_id_64) as matches, 
            sum(kills) as kills, 
            match_id, 
            player_name, 
            steam_id_64 
        FROM 
            match_player_stats 
        GROUP by 
            steam_id_64 
        ORDER by 
            id DESC
    ) x ON steam_id_64 = CAST(LEFT(hlstats_PlayerUniqueIds.uniqueId,1) AS unsigned) + CAST('76561197960265728' AS unsigned) + CAST(MID(hlstats_PlayerUniqueIds.uniqueId, 3,10)*2 AS unsigned)
GROUP by 
    uniqueId 
ORDER by 
    matches DESC 
LIMIT 
    0, 30

как сделать так, чтобы запрос в JOIN был лимитирован по match_id? где у каждого steam_id_64 ровно по 10 последних match_id.

сейчас он вызывает и суммирует все записи в match_player_stats, а должен только последние 10 по match_id, т.е. 2000 1999 1998 ... 1990.

если просто добавлять в него LIMIT 10, он будет считать последние 10 записей во всей таблице, и это не то, что нужно...

инфа о базе mysql:

Версия клиента базы данных: libmysql - 5.5.68-MariaDB || Версия PHP: 5.4.16


Ответы (0 шт):