2010-10-22 55 views
-1

如何添加一個由users_friends.date_created來管理兩個select查詢的訂單。MySQL ORDER BY問題

這是我的MySQL代碼。

(SELECT A.user_id, A.friend_id, B.username, B.avatar 
FROM users_friends AS A 
INNER JOIN users AS B 
ON A.friend_id = B.user_id 
AND A.user_id = 3 
AND A.friendship_status = 1) 
UNION 
(SELECT A.friend_id, A.user_id, B.username, B.avatar 
FROM users_friends AS A 
INNER JOIN users AS B 
ON B.user_id = A.user_id 
AND A.friend_id = 3 
AND A.friendship_status = 1) 
LIMIT 10 

回答

1

您可以通過添加外選擇與訂單和包裹工會作爲派生表

SELECT user_id, friend_id, username, avatar FROM (
(SELECT A.user_id, A.friend_id, B.username, B.avatar 
FROM users_friends AS A 
INNER JOIN users AS B 
ON A.friend_id = B.user_id 
AND A.user_id = 3 
AND A.friendship_status = 1) 
UNION 
(SELECT A.friend_id, A.user_id, B.username, B.avatar 
FROM users_friends AS A 
INNER JOIN users AS B 
ON B.user_id = A.user_id 
AND A.friend_id = 3 
AND A.friendship_status = 1) 
LIMIT 10 
) C 
ORDER BY avatar 
+0

這不工作我得到一個錯誤沒有數據庫中選擇 – HELP 2010-10-22 12:17:57

+0

如果原始查詢工作它應該工作。 – 2010-10-22 14:36:46

+0

我得到它自己的工作,但我會給你信貸幫助我感謝,因爲這個答案可能會幫助別人。 – HELP 2010-10-22 15:35:24

0

如果選擇DATE_CREATED列在查詢中也是允許的話,可以責令聯盟結果是 -

(SELECT A.user_id, A.friend_id, B.username, B.avatar, A.date_created as createdDate 
FROM users_friends AS A 
INNER JOIN users AS B 
ON A.friend_id = B.user_id 
AND A.user_id = 3 
AND A.friendship_status = 1) 
UNION 
(SELECT A.friend_id, A.user_id, B.username, B.avatar, A.date_created as createdDate 
FROM users_friends AS A 
INNER JOIN users AS B 
ON B.user_id = A.user_id 
AND A.friend_id = 3 
AND A.friendship_status = 1) 
order by createdDate LIMIT 10