sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo usar LIKE para la búsqueda de mysql con JOIN y ORDER BY el recuento de la mayoría de las filas/votos en la tabla de votos?

Aquí hay una respuesta más completa. Para obtener la suma de los votos buenos y los votos malos de un conjunto de filas de tablas unidas, debe agrupar las filas similares.

A continuación debería darle el resultado deseado.

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());