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

Ordinamento delle righe in base alle righe in un'altra tabella per popolare un elenco di What's Hot

Puoi farlo con un join sinistro:

SELECT levels.*, coalesce(sum(votes.vote),0) as total_vote
FROM levels 
LEFT JOIN votes ON votes.levelid = levels.id
WHERE votes.date >=( CURDATE() - INTERVAL 7 DAY ))
GROUP BY levels.id
ORDER BY coalesce(sum(votes.vote),0) desc;

Le coalizioni qui assicurano che i livelli che non sono stati votati ottengano un punteggio (anziché nullo) e siano ordinati correttamente.