Myslím, že následující dotaz přinese výsledek, který potřebujete. Nejprve musíte vypočítat pořadí v dílčím dotazu. Myslím, že je to mnohem jednodušší než váš přístup, stačí seřadit výsledky podle výher a rozdílů v sestupném pořadí (předpokládejme, že pole jsou čísla). Pak stačí vybrat všechny výsledky a změnit příkaz k popisu hráče
SELECT player, wins, diff,rank from
(
SELECT player, wins, diff, @winrank := @winrank + 1 AS rank
from tmpPoradi,(SELECT @winrank := 0) r
ORDER BY wins DESC,diff DESC
) rt
ORDER BY player
Doufám, že mi nic neunikne.