Maison > Questions et réponses > le corps du texte
La scène est comme ça
Il y a un article de table d'article
champ : contenu d'aide
Il y a aussi un champ d'éloge de table similaire : id aid time
Le champ d'aide des magasins de table similaire l'aide à l'article correspondante
Maintenant, je veux obtenir la liste des articles mais les trier du plus grand au plus petit en fonction du nombre de likes. Comment écrire ce SQL ?
Merci.
天蓬老师2017-05-16 13:11:04
Si la quantité de données est importante, la jointure gauche est relativement lente. Si elle s'affiche dans les pages ou demande simplement les données des premières douzaines d'éléments, vous pouvez d'abord demander les aides triées dans le tableau des likes, puis les rechercher. les articles correspondant à ces aides dans le tableau des articles
仅有的幸福2017-05-16 13:11:04
sélectionnez a.content de l'article a gauche rejoignez l'éloge b sur a.aid=b.aid commande par b.time desc
阿神2017-05-16 13:11:04
SELECT
a.aid,
a.content,
pr.praiseCount
FROM article a
LEFT JOIN (SELECT
p.aid,
count(1) AS praiseCount
FROM praise p
GROUP BY p.aid) pr
ON a.aid = pr.aid
ORDER BY pr.praiseCount DESC
淡淡烟草味2017-05-16 13:11:04
sélectionnez a.aid,count(p.aid) num de l'article a gauche rejoignez l'éloge p sur a.aid=p.aid groupe par p.aid ordre par num desc ;