用于查询具有多个分类法的drupal节点的SQL

时间:2011-09-28 10:45:51

标签: sql drupal drupal-6 taxonomy

大家早上好。 我在发布之前已经阅读了一些建议的问题,但似乎没有人有同样的问题(可能是因为我在Drupal和编码方面有多么糟糕)

我需要编写一个查询,返回与之关联的两个SPECIFIC分类法的所有节点(我知道其中的ID),但似乎我不知道正确的语法因为我只是设法使其工作一个学期的身份。

这是我到目前为止(并且有效)

SELECT * FROM node 
INNER JOIN term_node AS tn ON node.vid = tn.vid 
LEFT JOIN content_type_extra_content AS xc ON node.vid = xc.vid 
WHERE tn.tid IN (SELECT th.tid FROM term_hierarchy AS th WHERE th.tid = '146')

'146'是我需要检查的第一个分类术语的id(称之为“鞋子”) 现在我必须检查节点是否也有分类标识'223'(称之为“季节”)

我尝试了不同的解决方案但没有用。 我很确定解决方案在我的鼻子底下,但此刻我无法绕过它。

请注意,分类法在不同的词汇表中,它们处于0级

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:2)

如果我理解正确,你想要有2个特定术语(鞋子和季节)的节点,那么尝试这样的事情:

SELECT * FROM node 
INNER JOIN term_node AS tn ON node.vid = tn.vid 
LEFT JOIN content_type_extra_content AS xc ON node.vid = xc.vid 
WHERE tn.tid IN ('146','223')
GROUP BY node.vid
HAVING count(*) = 2