我使用此查询根据每个名字获得的票数为他们分配排名,但它返回错误:
1248 - 每个派生表必须有自己的别名
这是我的代码:
SELECT @rownum:=@rownum+1 AS rank, name, vote
FROM table, (SELECT @rownum:=0) ORDER BY vote DESC
将查询修改为:-
SELECT @rownum:=@rownum+1 AS rank, name, vote
FROM table ORDER BY vote DESC
我得到的查询的预期排名为 NULL。有帮助吗,如何获得第一名?
NOTE:我不是在寻找任何替代解决方案。只是尝试在查询本身中执行此操作。
这个错误非常明显。每个派生表必须有自己的别名。您需要别名(SELECT @rownum := 0)
像这样:
SELECT
@rownum := @rownum + 1 AS rank,
name,
vote
FROM table, (SELECT @rownum := 0) t --This what you were missing an alias
ORDER BY vote DESC
SQL 小提琴演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)