因此,我在Codeigniter框架下使用PHP进行活动记录查询,在该框架中,我想选择所有满足连接中某个值的条目(以下命名为'曲目')('tags'与轨道相关联 - 每个轨道可以有多个标签绑定)。我想知道的是,如果有一种方法可以让查询查找具有与其关联的所有选定标签的曲目。因此,不是让所有曲目的links.tag_id为1,而是使用links.tag_id为2的所有曲目,它会返回所有曲目的links.tag_id为1以及2.本质上,它是一个减法查询,它将您选择的结果缩小到您添加的更多标记。以下是我迄今为止所做的:
$this->db->select('tracks.id,
tracks.name AS name,
tracks.filename,
tracks.url_name,
tracks.file_path_high,
tracks.filesize,
tracks.categories,
tracks.duration,
tracks.folder,
links.tag_id,
SUM(links.weight) AS total_weight,
tag_data.tag_name');
$this->db->distinct();
$this->db->from('music AS tracks');
$this->db->where_in('links.tag_id', array('1', '2');
$this->db->join('linked_tags AS links', 'links.track_id = tracks.id', 'inner');
$this->db->join('tags AS tag_data', 'tag_data.id = links.tag_id', 'inner');