Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar LIKE para pesquisa mysql com JOIN e ORDER BY a contagem da maioria das linhas/votos na tabela de votos?


Aqui está uma resposta mais completa. Para obter a soma ou votos bons e votos ruins de um conjunto de linhas de tabela unidas, você precisa agrupar as linhas semelhantes.

Abaixo deve dar-lhe o resultado desejado.
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());