1

だから私はこのテーブルを持っています。このクエリを使用すると、すべて問題ありません。

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

ただし、ユニオン選択を使用しようとするとすぐにエラーが発生します。

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

2 番目のテーブルには列がありません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 に答える