Submitted by Marvine on
Salut !
J'aimerais savoir comment écrire une requête SQL qui, pour un node et un numéro de vocabulaire donné me renverrai SEULEMENT le 1er niveau de taxonomie.
Un exemple :
France
Paris
1er arrondissement
2eme ...
Marseille
Espagne
Madrid
Barcelone
Mon node est le numéro 252 et le vocabulaire des pays > villes > arrondissements est le 6.
Je voudrais récupérer pour mon node 252 seulement le pays relatif à ce node dans ma requête et pas l'arborescence enfant qui va avec.
Une idée ?
SELECT td.tid, td.name FROM
Permalien Soumis par khtuluu le 2 Juin, 2010 - 16:26
SELECT td.tid, td.name FROM {term_hierarchy} th
INNER JOIN {term_node} tn USING (tid)
INNER JOIN {term_data} td USING (tid)
INNER JOIN {vocabulary} v ON v.vid = td.vid
WHERE tn.nid = 252
AND v.vid = 6
AND th.parent = 0
voila ça doit faire un peu ce que tu cherche. En gros ça va chercher l'id et le nom des taxo de ton noeud "252" faisant partie du vocabulaire "6" te vérifiant la condition
"parent = 0". Cette dernière instruction s'assure que la taxo ne possède pas de parent
Le tout devant être compris
Permalien Soumis par emerya le 2 Juin, 2010 - 17:26
Le tout devant être compris dans les fonction Drupal db_fetch_object(db_query(....));
@khtuluu : Merci pour la joli
Permalien Soumis par Marvine le 2 Juin, 2010 - 20:53
@khtuluu : Merci pour la joli requête, la table term_hierarchy et l'attribut "parent = 0" devrait m'aider :).