我想使用我在this网站上找到的一些查询 - 我根据自己的目的对其进行了调整:
SELECT * FROM
(
(
SELECT id, lng FROM stations WHERE lng >= 18.123 ORDER BY lng LIMIT 1
) AS result1
UNION ALL
(
SELECT id, lng FROM stations WHERE lng < 18.123 ORDER BY lng LIMIT 1
) AS result2
)
ORDER BY abs(18.123-lng) LIMIT 1;
但我收到了错误Syntax error, unexpected AS, expecting UNION_SYM or ')'
当我尝试不使用别名时,我(显然)不断收到错误Error Code: 1248. Every derived table must have its own alias
答案 0 :(得分:3)
您需要为最外面的表添加别名:
SELECT * FROM
(
(SELECT id, lng FROM stations WHERE lng >= 18.123 ORDER BY lng LIMIT 1)
UNION ALL
(SELECT id, lng FROM stations WHERE lng < 18.123 ORDER BY lng LIMIT 1)
) AS result12
ORDER BY abs(18.123-lng) LIMIT 1;
编辑:忘记了内部查询的括号。