2011-11-17 63 views
0

我有这样的SQL查询:错误在距离SQL查询

SELECT 
    *, 
    6371.04 * acos(cos(pi()/2 - radians(90 - `Tournament`.`latitude`)) * cos(pi()/2 - radians(90 - 37.226)) * cos(radians(`Tournament`.`longitude`) - radians(-93.4397)) + sin(pi()/2 - radians(90 - `Tournament`.`latitude`)) * sin(pi()/2 - radians(90 - 37.226))) AS `Tournament`.`dist` 
FROM `tournaments` AS `Tournament` 
WHERE 1 = 1 
ORDER BY `Tournament`.`dist` ASC 
LIMIT 5 

我想不出有什么能可能是错误的这种说法。这是我得到的错误:

1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.`dist` FROM `tournaments` AS `Tournament` WHERE 1 = 1 ORDER BY `Tournament`' at line 1 

任何人都可以指出我在正确的方向吗?

+0

我试着用http://www.dpriver.com/pp/sqlformat.htm格式化您的查询,但可悲的是有很多的问题。请检查链接。 –

回答

1
AS `Tournament`.`dist` 

这可能是抱怨点。尝试将它分配到dist

+0

有没有办法将它分配给表?如果我想从多个表中分配一个dist,该怎么办? – LordZardeck

+0

@LordZardeck,他指的是第一个“AS' Tournament'.'dist'”。在ORDER BY子句中没问题。但它不允许作为别名。 – mdahlman

+1

尝试'tournament_dist'或'tournamentDist' :) –