具有联合选择和别名的 MySQL 未定义别名

标签 mysql

所以我有这张表,如果我使用这个查询一切都很好:

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/

相关文章:

mysql - 查找平均分最高的学生

mysql - SQL Server 通过内部连接三个或更多表来选择不同的最新值

MySQL MATCH反对效率

mysql - Doctrine - 查询构建器使用数组设置参数(嵌套/多个值)

mysql - SQL从2个不同的表中检索数据

bash - 带有 "--where"-选项的 MySQLdump 将不起作用

单表mysqldump返回errno 32

mysql - sql View 是正确的解决方案吗

java - 使用 Java 删除 MySQL 数据库中的行

mysql - 如何在Stata中使用准备好的语句?