окей. переформулирую вопрос полностью.
имею растущую базу и 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