Skip to content
Extraits de code Groupes Projets
Valider dcb6f46a rédigé par esj's avatar esj
Parcourir les fichiers

Ajout d'une déclaration de jointure pour pouvoir utiliser le critère id_mot...

Ajout d'une déclaration de jointure pour pouvoir utiliser le critère id_mot dans une boucle syndic_articles. En particulier, le squelette de SpipContrib contenant:
{{{
<BOUCLE_motsiteszone(MOTS){id_mot=233}>		
 <BOUCLE_siteszone(SITES){id_mot}>
  <BOUCLE_syndiczone(SYNDIC_ARTICLES){id_syndic}{doublons zone}> ....
  </BOUCLE_syndiczone>
 </BOUCLE_siteszone>
</BOUCLE_motsiteszone>
}}}
dont la première boucle était déjà superflue ({{{id_mot=233}}} pouvait se mettre comme critère de la 2e boucle), peut maintenant s'écrire avec une seule:
{{{
<BOUCLE_syndiczone(SYNDIC_ARTICLES){id_mot=233}{doublons zone}> ...
</BOUCLE_syndiczone>
}}}
et se compile en:
{{{
SELECT syndic_articles.id_syndic_article, syndic_articles.id_syndic
FROM Essai_syndic_articles AS `syndic_articles` 
    INNER JOIN Essai_mots_syndic AS L1 ON syndic_articles.id_syndic=L1.id_syndic
    INNER JOIN Essai_syndic AS L2 ON syndic_articles.id_syndic=L2.id_syndic
WHERE (L1.id_mot = '233')
    AND ((syndic_articles.id_syndic_article NOT IN (0)))
    AND (syndic_articles.statut = 'publie')
    AND (L2.statut = 'publie')
GROUP BY syndic_articles.id_syndic_article,syndic_articles.id_syndic
}}}

Le {{{IN (0)}}} correspond au cas d'un {{{doublons zone}}} vide, ce qui est
le cas du squelette de SpipContrib. Le gain est donc dans l'évacuation d'une boucle enchassant une boucle avec un IN qui grossissait à chaque itération de la boucle englobante.
parent 40898f8a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -254,6 +254,7 @@ $tables_jointures['spip_syndic'][]= 'mots_syndic'; ...@@ -254,6 +254,7 @@ $tables_jointures['spip_syndic'][]= 'mots_syndic';
$tables_jointures['spip_syndic'][]= 'mots'; $tables_jointures['spip_syndic'][]= 'mots';
$tables_jointures['spip_syndic_articles'][]= 'syndic'; $tables_jointures['spip_syndic_articles'][]= 'syndic';
$tables_jointures['spip_syndic_articles'][]= 'mots_syndic';
$tables_jointures['spip_syndic_articles'][]= 'mots'; $tables_jointures['spip_syndic_articles'][]= 'mots';
$tables_jointures['spip_mots'][]= 'mots_articles'; $tables_jointures['spip_mots'][]= 'mots_articles';
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter