PlayerLeagueMySQL выбрать номер строки
league_id
player_id
player_position
PlayerStat
player_id
счет
У меня есть две таблицы, и я хочу, чтобы обновить PlayerLeague, установите player_position число, равное строке:
SELECT * FROM PlayerStat s JOIN PlayerLeague l
ON s.player_id=l.player_id WHERE l.league_id=3 ORDER BY score DESC;
Я пытался используйте @i в моем выборе, но с присоединением ORDER BY был проигнорирован.
UPDATE
Итак, теперь у меня есть это, и это работает, но я не уверен, что это нормальный путь. Он будет запускаться каждый час для трех лиг 40-500 игроков.
SET @i=0;
UPDATE PlayerLeague ll set ll.player_position = (SELECT position FROM (SELECT
s.player_id, @i:[email protected]+1 as position
FROM PlayerStat s
where s.player_id in
(SELECT player_id from PlayerLeague l WHERE l.league_id = 3)
ORDER BY score DESC) AS t WHERE t.player_id=ll.player_id);
«но с присоединением ORDER BY был проигнорирован». --- это не игнорируется. 'ORDER BY' сортируется по любому выражению или столбцу, который вы передаете ему – zerkms
Сколько строк с l.league_id = 3 у вас есть? – Mihai
Mihai, у меня есть 3 лиги, от 40 до ~ 500 игроков –