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

mysql:Wie kann man INNER JOIN an einer Tabelle teilnehmen, aber Join auf 1 Ergebnis mit der höchsten Stimme oder Anzahl beschränken?

SELECT a.*, b.*
  FROM Items a
       LEFT JOIN Votes b on a.item_id = b.item_id
                         and b.total_yes = (select max(total_yes) 
                                              from Votes v 
                         where v.item_id = a.item_id)
ORDER BY a.post_date DESC, b.total_yes DESC

N.B.:Wenn Sie für eine Frage 2 Antworten mit demselben total_yes =max haben, haben Sie 2 Zeilen für diese Frage.