Utiliser une sous-requête MySQL pour compter le nombre de liaisons sur un élément

COUNT() qui permet de compter le nombre d’occurrences d’une valeur dans une table peut être utilisé en sous-requête pour dénombrer, par exemple, le nombre de liaisons de l’élément dans une autre table

, par clem

Exemple en SPIP d’utilisation de COUNT() en sous-requête

La table spip_mots_liens est utilisée pour stocker les liaisons des objets SPIP (articles, rubriques...) sur les mots clés de la table spip_mots.
On souhaite faire une liste des mots clés du groupe 2 avec pour chacun le nombre de liaisons qu’il possède :

  1. SELECT m.id_mot, m.titre,
  2.     (SELECT COUNT(L.id_mot) FROM spip_mots_liens AS L WHERE L.id_mot = m.id_mot) AS nb
  3. FROM spip_mots AS m WHERE m.id_groupe=2 ORDER BY m.titre;

Télécharger

on obtient un résultat de la forme

  1. | id_mot | titre               | nb  |
  2. | 122     | acceptability  |  1   |
  3. |185      | adaptation     | 1   |
  4. | 220     | agriculture     | 1   |

Télécharger