2010-10-22 7 views
-1

Comment puis-je ajouter un ordre par users_friends.date_created qui régit les deux requêtes select.MySQL ORDER BY question

Voici mon code 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 

Répondre

1

Vous pouvez ajouter une sélection externe avec une commande par et envelopper le syndicat comme une table dérivée

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

ce travail i Do not obtenir une erreur Aucune base de données sélectionnée – HELP

+0

Il devrait fonctionner si la requête initiale fonctionne. –

+0

Je l'ai eu à travailler par moi-même, mais je vous donnerai le crédit de m'aider parce que cette réponse aiderait probablement quelqu'un d'autre. – HELP

0

Si vous sélectionnez la colonne date_created est également autorisée dans la requête alors nous pouvons commander l'union de les résultats que -

(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