Hello,
Sur un SPIP 2.0.9 SVN [14605].
La boucle jointure suivante :
<BOUCLE_les_sujets(ARTICLES mots_articles mots) {id_mot} {mots.titre !=''} {fusion mots.id_mot}{par mots.id_mot}>
Donne comme résultat :
SELECT L3.id_mot, articles.date, articles.lang
FROM spip_articles AS `articles`
INNER JOIN spip_mots_articles AS L2 ON ( L2.id_article = articles.id_article )
INNER JOIN spip_mots AS L3 ON ( L3.id_mot = L2.id_mot )
INNER JOIN spip_mots_articles AS L1 ON ( L1.id_article = articles.id_article )
WHERE (articles.statut IN ('publie','prop'))
AND (L1.id_mot = 254)
AND NOT((L3.titre = ''))
GROUP BY articles.id_article,L3.id_mot
ORDER BY L3.id_mot
Pourquoi donc y'a t'il :
1) GROUP BY articles.id_article
2) 2x un INNER JOIN spip_mots_articles
A la limite le double INNER JOIN bon, ca ne fausse pas le résultat, mais le
GROUP BY articles.id_article,L3.id_mot
chez moi est equivalent à un simple GROUP BY articles.id_article , qui n'est pas ce que je demande avec mon critere {fusion mots.id_mot}.
Je fais cela dans le cadre de mes tests de la balise #EXPRESSION de rénato.
http://www.location-appartement-ski.net/?page=balises_expressions_sql
BoOz