所以我有这张表,如果我使用这个查询一切都很好:
SELECT *
FROM `users` AS usr
WHERE usr.id = 9
ORDER BY usr.id ASC , usr.date DESC
LIMIT 0 , 30
但是,一旦我尝试使用 union select,我就会收到一个错误:
SELECT *
FROM `users` AS usr
WHERE usr.id = 9
UNION ALL SELECT 1,2,3,4,5
ORDER BY usr.id ASC , usr.date DESC
LIMIT 0 , 30
我在 order 子句中收到错误 unknown column 'usr.id'。我该如何解决这个问题,以便 union select 可以使用它?谢谢。
编辑:有什么方法可以做到这一点,同时保持我的原始查询完好无损并且不会改变太多吗?
最佳答案
查询:
SELECT a.*
FROM(SELECT *
FROM `users` AS usr
WHERE usr.id = 9
UNION ALL
SELECT 1,2,3,4,5) a
ORDER BY a.id ASC , a.date DESC
LIMIT 0 , 30
关于具有联合选择和别名的 MySQL 未定义别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18459822/