在 Drupal 7 中查询共享两个分类术语 (tid) 的节点。我正在查询 taxonomy_index tid 和 nid(并按创建的列对其进行排序)。taxonomy_index 表有一个 tid 列和用该 tid 标记的相应 nid。
我尝试了多种组合,但它们似乎要么返回所有标记为 tid1 或 tid2 的节点,要么只是返回 tid1。我的一些代码看起来像:
<!-- Query the taxonomy_index -->
$results = db_select('taxonomy_index', 't')
->fields('t', array('nid', 'tid'))
->distinct()
->condition('t.tid', $tids, 'IN')
->orderBy('t.created', 'DESC')
->extend('PagerDefault')
->limit(9)
->execute()
->fetchCol();
<!-- Build the pager -->
$total = db_select('taxonomy_index', 't')
->fields('t', array('nid', 'tid'))
->distinct()
->condition('t.tid', $tids, 'IN')
->countQuery()
->execute() // Execute the query
->fetchCol(); // Fetch column
$total_pager = $total[0];
pager_default_initialize($total_pager,9);
我也尝试过添加:
$query->where('t.tid = 115 AND t.tid = 210'); // Query for specific tids= 115 and 210.
有谁知道解决这个问题?还是有更好的选择,比如建立一个新的索引表,或者在另一个包含两者的词汇表中创建一个新的 tid (tid1 + tid2 = tid3)?