Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie verwendet man LIKE für die MySQL-Suche mit JOIN und ORDER BY die Anzahl der meisten Zeilen/Stimmen in der Abstimmungstabelle?

Hier ist eine ausführlichere Antwort. Um die Summe oder gute Stimmen und schlechte Stimmen aus einer Reihe verbundener Tabellenzeilen zu erhalten, müssen Sie ähnliche Zeilen zusammen gruppieren.

Unten sollte geben Ihnen das gewünschte Ergebnis.

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