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

Relation plusieurs-à-plusieurs sélectionner et trier par

Probablement quelque chose de similaire à ceci :

SELECT
    a.person_id
FROM
    table AS a,
    table AS b
WHERE
    a.person_id = b.person_id AND
    a.favorite_id = 1 AND
    b.favorite_id = 2
ORDER BY
    ( IF( a.is_main_favorite = "y", 1, 0 )
      +
      IF( b.is_main_favorite = "y", 1, 0 ) ) DESC

Au fait :vous pouvez stocker 1/0 au lieu de y/n dans la base de données afin de ne pas avoir besoin de l'appel IF