1
运行下面的查询的MySQL变量未递增正确
SET @rownum := 0;
SELECT customer_id, @rownum := @rownum +1 AS rank, score
FROM game_table_customers gtc
INNER JOIN customers c ON c.customers_id = gtc.customer_id
INNER JOIN game_table gt ON gtc.table_id = gt.table_id
WHERE c.my_team =11095
AND gt.event_id =21110
ORDER BY score DESC
LIMIT 0 , 30
正确的结果应该是这样的
CustID Rank Score
2 1 130000
39 2 99426
84 3 99178
259 4 98963
339 5 97796
然而,我所得到的是以下
CustID Rank Score
2 2 130000
39 11 99426
84 20 99178
259 54 98963
339 69 97796
当我排除了event_id子句我得到了正确的结果。但是,当包含event_id时,它会使其偏移。我只尝试了event_id(删除my_team子句)和相同的错误结果。
任何意见/建议,为什么结果可能被关闭,将不胜感激
嗯,它的合法工程。尽管由于子查询,性能仍然慢很多。你能解释为什么这个原理起作用吗? –
您确定由于子查询性能较慢吗?一张30行的临时表格不应该放慢速度。 –
我必须删除限制,因为可能会有1000行,可能更多。 –