両方の分類用語 (tid)を共有するノードについて Drupal 7 にクエリを実行します。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) などの推奨される代替手段はありますか?