Drupal:如何知道tid的类型(term id)?

时间:2009-07-17 03:27:45

标签: drupal

我需要知道term_data表中tid的类型。例如,我想知道这个tid是否是ed-classifieds模块的一种类型?

这是我现在的查询,不是100%正确

# get all the parent categories for the ed classifieds
SELECT th.tid, td.name, n.type
FROM term_hierarchy th 
LEFT JOIN term_data td ON th.tid = td.tid 
LEFT JOIN term_node tn ON tn.tid = td.tid 
LEFT JOIN node n ON n.nid = tn.nid
WHERE th.parent = '0' 
#AND n.type = 'ed_classified' 
GROUP BY th.tid

提前致谢

2 个答案:

答案 0 :(得分:7)

这里可能会有一些混乱。术语本身只是自由浮动的实体,如免费标签或类别。它们可以分为“词汇表” - 词汇表id存储在term_data表的“vid”列中。

您在该查询中提取的“节点类型”是使用分类术语标记的节点的内容类型。该类型不是术语本身固有的 - 给定术语可用于同时标记许多不同类型的内容。但是,术语只能属于单个词汇

答案 1 :(得分:3)

除了eaton所说的(和往常一样正确)之外,请注意term_node通过nid + vid连接到节点,而不仅仅是nid:自Drupal 6以来,术语与修订版相关。

所以你的最后一次加入应该是在n.vid = tn.vid而不是n.nid = tn.nid