MySQL未定义别名,带有联合选择和别名

时间:2013-08-27 07:47:09

标签: mysql

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

SELECT *
FROM `users` AS usr
WHERE usr.id = 9
ORDER BY usr.id ASC , usr.date DESC
LIMIT 0 , 30

但是,只要我尝试使用union选择,我就会收到错误:

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子句中得到错误未知列'usr.id'。我如何解决这个问题,以便联合选择与它一起工作?感谢。

编辑:有没有办法做到这一点,同时保持我的原始查询,而不是太多改变?

2 个答案:

答案 0 :(得分:2)

查询:

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

答案 1 :(得分:0)

第二个表没有列id。这样做:

SELECT id, ...
FROM `users` AS usr   
WHERE usr.id = 9
UNION ALL SELECT 1 id, ...
ORDER BY id ASC... DESC
LIMIT 0 , 30