MySQL ORDER BY вопрос - PullRequest
       2

MySQL ORDER BY вопрос

0 голосов
/ 22 октября 2010

Как я могу добавить заказ на users_friends.date_created, который управляет обоими запросами выбора.

Вот мой код 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

Ответы [ 2 ]

1 голос
/ 22 октября 2010

Вы можете добавить внешний выбор с помощью заказа и обернуть объединение как производную таблицу

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 голосов
/ 21 июля 2016

Если в запросе также разрешен выбор столбца 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
...