Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Classificando linhas por linhas em outra tabela para preencher uma lista de novidades


Você pode fazer isso com uma junção à esquerda:
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;

As coalescências aqui garantem que os níveis que não foram votados recebam uma pontuação (em vez de nulo) e sejam classificados corretamente.