sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man LIKE för mysql-sökning med JOIN och ORDER BY antalet flest rader/röster i rösttabellen?

Här är ett mer fullständigt svar. För att få summan eller bra röster och dåliga röster från en uppsättning sammanfogade tabellrader måste du gruppera likadana rader.

Nedan bör ge dig det önskade resultatet.

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



  1. Oracle SQL :sorteringsrad med avgränsad sträng

  2. $_POST-variabler fungerar inte med $_FILES och multipart/form-data

  3. SQL JOIN för att hitta poster som inte har en matchande post med ett specifikt värde

  4. Jaro-winkler-funktion:varför matchar samma poäng mycket lika och väldigt olika ord?