У меня есть следующий запрос, над которым я работаю, вы найдете примеры данных на этой скрипте БД :
SET @count=0;
SELECT ( @rank := IF(@points = points, @rank + 1, IF(@points := points, @rank + 1, @rank + 1)) ) AS rank,
er.*
FROM (SELECT cc6_MensLeague_players.id AS `id`,
( 1288 ) AS points,
(SELECT Max(@count := IF(outcome = 2, @count + 1, 0)) AS max_consecutive_wins
FROM (SELECT *
FROM cc6_MensLeague_rounds
WHERE player = 785
ORDER BY date ASC) AS temp
) AS `maxcon`
FROM cc6_MensLeague_players
GROUP BY `id`) er
CROSS JOIN (SELECT @rank := 0, @points := -1) params
ORDER BY id DESC;
Этот код отлично работает(спасибо Тобиасу Торнфельдту Ниссену), но сейчас я пытаюсь сделать динамический идентификатор игрока (785) ... Я не могу передать свою переменную id (cc6_MensLeague_players.id) в подзапрос из предложения.
Я пробовал следующие методы:
Добавление @id :=
в начало ... cc6_mensleague_players.id AS id ...
и изменение ... WHERE player = 785 ...
на ... WHERE player = @id ...
NO LUCK!
Изменение ... player = 785 ORDER BY DATE ASC ...
на ... player = @id GROUP BY ID ORDER BY DATE ASC ...
БЕЗ УДАЧИ!
Я также попробовал несколько других тактик, но я просто не могу понять это.
Итак, мой вопрос: как мне заставить WHERE player = cc6_mensleague_players.id
(строка 9) работать?
Если вы укажете мне правильное направление, это будет с благодарностью.
Спасибо.