Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare LIKE per la ricerca su MySQL con JOIN e ORDER BY il conteggio della maggior parte delle righe/voti nella tabella dei voti?

Ecco una risposta più completa. Per ottenere la somma dei voti positivi e negativi da un insieme di righe di tabelle unite, è necessario raggruppare le righe simili.

Sotto dovrebbe darti il ​​risultato desiderato.

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