Bonjour,
Je continue mes expérimentations avec les tables externes de SPIP
(épatante fonctionnalité, entre nous soit dit), et j'ai trouvé une
incohérence :
J'ai une table externe que SPIP nomme «externe», et voilà une boucle qui
marche :
<BOUCLE_projets_joints(externe:project scientist){last_name="Singes"}>
#LAST_NAME : #NAME
</BOUCLE_projets_joints>
project a deux champs : id_project et name
scientist a trois champs : id_scientist, id_project et last_name
Comme vous le voyez, "name" est un champ de projet et "last_name" un
champ de "scientist", il y a donc jointure (sur id_project) et voilà le
SQL généré :
SELECT L1.last_name, project.name
FROM project AS `project`
INNER JOIN scientist AS L1 ON ( L1.id_project = project.id_project )
WHERE (L1.last_name = 'Singes')
GROUP BY project.id_project
C'est parfait !
À présent, si je remplace {last_name="Singes"} par {par last_name}, ça ne
marche plus car la jointure essaie de se faire sur "id_scientist"...
Voilà le SQL généré :
SELECT L1.last_name, project.name
FROM project AS `project`
INNER JOIN scientist AS L1 ON ( L1.id_scientist = project.id_scientist )
ORDER BY last_name
Ce qui plante, c'est que project n'a pas de champ id_scientist.
J'aimerais que la jointure se fasse encore sur id_project : comment le
forcer ?
Version de SPIP : Stable branche 2.0 [14057]
Amicalement,