我在MySQL 3個表排除與某些標籤相關的分貝條目:如何使用CI活動記錄
卡:
id | name
1 | alpha
2 | beta
標籤:
id | name
1 | a
2 | b
tag_link:
id | card | id
1 | 1 | 1
2 | 2 | 1
3 | 2 | 2
我想找回所有的車不包含某個標籤的ds。 CI型號:
function search($_tag) {
$this->db->select('card.id');
$this->db->join('tag_link', 'card.id = tag_link.card');
$this->db->where_not_in('tag_link.tag', $_tag);
$this->db->group_by('card.id');
$query = $this->db->get('card');
return $query;
}
對於標記'2',按預期返回卡'1'。但是,由於tag_link連接卡'2'和標籤'1'中的一個條目,卡'2'也被錯誤地返回。
我想過使用上面的函數獲取第一個匹配數組,然後在php中減去另一個包含所有卡片的數組,包括我不感興趣的標籤 但是,這個解決方案感覺非常笨拙。這個問題最有效的方法是什麼?
感謝, 呃逆
取出加入將讓你的結果我想小提琴,嘗試在active_record –