Итак, вот что я придумала:
$this->Sql = 'SELECT DISTINCT * FROM `nodes` `n`
JOIN `tagged_nodes` `t` ON t.nid=n.nid';
$i=0;
foreach( $tagids as $tagid ) {
$t = 't' . $i++;
$this->Sql .= ' INNER JOIN `tagged_nodes` `'.$t.'` ON '
.$t'.tid=t.tid WHERE '.$t.'.tid='.$tagid;
}
Он написан на PHP, так как мне нужно, чтобы он был динамическим, но в основном это было бы следующим, если бы мне потребовалось, скажем, только 2 тега (animals
, pets
).
SELECT * FROM nodes n JOIN tagged_nodes t ON t.nid=n.nid
INNER JOIN tagged_nodes t1 ON t1.tid=t.tid WHERE t1.tid='animals'
INNER JOIN tagged_nodes t2 ON t2.tid=t.tid WHERE t2.tid='pets'
Я на правильном пути?