1

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

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 子句中收到错误未知列“usr.id”。我该如何解决这个问题,以便联合选择可以使用它?谢谢。

编辑:有没有什么办法可以做到这一点,同时保持我的原始查询完好无损并且不会改变太多?

4

2 回答 2

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
于 2013-08-27T07:50:06.667 回答
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
于 2013-08-27T07:50:44.060 回答