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

Comment utiliser LIKE pour la recherche mysql avec JOIN et ORDER BY le nombre de lignes/votes dans la table des votes ?

Voici une réponse plus complète. Pour obtenir la somme des bons votes et des mauvais votes à partir d'un ensemble de lignes de tableau jointes, vous devez regrouper les lignes similaires.

Ci-dessous devrait vous donner le résultat souhaité.

mysql_query("
    SELECT m.Title, r.Subject, v.TipID, sum(v.IsGood) as IsGood, sum(v.isBad) as isBad FROM Movies m
        LEFT JOIN Reviews r
            ON m.ID=r.MovieID
        LEFT JOIN Votes v
            ON r.ID=v.ReviewID
        WHERE (m.Title LIKE '%" . $search . "%'
            OR r.Subject LIKE '%" . $search . "%')
        GROUP BY  m.Title, r.Subject, v.TipID
        ORDER BY sum(v.IsGood) desc, sum(v.isBad) asc LIMIT 10")or die(mysql_error());