[SPIP Zone] problème de déclaration de table (enfin je pense)

hello,

j'ai un petit problème entre deux tables. (le but du jeu étant de sortir
tous les mots-cles associé à un livre)

le contexte :

une table livres, une table mots_livres, et la table mots

dans l'idéal je désire parvenir a la boucle suivante :

<BOUCLE_mots(MOTS){id_livre} etc... >

Il me semble qu'il suffit d'une bonne déclaration des nouvelles tables
pour réussir à faire cela, pourtant rien n'y fait. (margrès une lecture
assidue des docs). Serais-je passé à côté de quelque chose ? faut-il
déclarer le critère id_livre dans une fonction (function
critere_id_livre(...) ) ?

-------------------------

mes tables (livres et mots_livres) sont déclarés de la manière
suivante :

[...]

$tables_principales['spip_livres'] =
   array('field' => &$livres, 'key' => &$livres_key);

[...]
$mots_livres_key = array(
  "PRIMARY KEY" => "id_mot, id_livre",
  "KEY id_mot" => "id_mot"
);

$tables_principales['spip_mots_livres'] =
  array('field' => &$mots_livres, 'key' => &$mots_livres_key);

[...]

$table_primary['livres']='id_livre';
$table_primary['mots_livres']='id_mot, id_livre';

$table_des_tables['livres']='livres';
$table_des_tables['mots_livres']='mots_livres';

$tables_jointures['mots'][]= 'mots_livres';
$tables_jointures['livres'][]= 'mots_livres';

global $exceptions_des_tables;
$exceptions_des_tables['mots']['id_livre']=array('spip_mots_livres',
'id_livre');