Mysql
 sql >> Base de données >  >> RDS >> Mysql

Appliquer ORDER BY sur une UNION (Mysql)

SELECT *
FROM (
(SELECT * FROM user_relation WHERE from_user_id = 1)
UNION
(SELECT * FROM user_relation WHERE to_user_id = 1)
) AS i
ORDER BY trust_degree

Vous devez attribuer un alias à votre select. Mais dans ce cas un UNION n'est pas nécessaire et peut être remplacé par un simple OR , comme le souligne @Karoly Horvath dans son commentaire. La requête résultante ressemblerait à ceci :

SELECT 
 * 
FROM user_relation 
WHERE from_user_id = 1 OR to_user_id = 1 
ORDER BY trust_degree