[spip-dev] Le compilo dans les vappes après quelques joints ??

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

Salut BoOz,
j'ai reussi a virer le probleme 2), le multiple join, en utilisant {mots.id_mot}

Je pense c'est liè a une exception dans le jointures entre articles et mots.

Pour le probleme 1) malheuresement j'ai pas compris pourquoi.

Renato

BoOz ha scritto:

Suite de la torture du critère fusion.

J'ai tenté un petit :

{fusion REPLACE(comment,SUBSTRING_INDEX(comment, ' ', 1),'')}

que spip a traduit en :

GROUP BY REPLACE(comment,SUBSTRING_INDEX(comment, ' ', 1)

J'ai testé des #SET #GET ou des quotes sans succès.

BoOz

Renato wrote: