sql comment trier en fonction du « numéro » dans une autre table
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-16 13:09:04
0
4
687

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.

曾经蜡笔没有小新
曾经蜡笔没有小新

répondre à tous(4)
Peter_Zhu

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

仅有的幸福

sélectionnez a.content de l'article a gauche rejoignez l'éloge b sur a.aid=b.aid commande par b.time desc

阿神
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
淡淡烟草味

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 ;

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal