CI 활동 기록을 사용하여 특정 태그와 관련된 DB 항목을 제외하는 방법 :내가 3 개 MySQL의에서 테이블을 가지고
카드 :
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'카드를 반환합니다. 그러나 카드 '2'는 '2'태그와 '1'태그를 연결하는 tag_link의 한 항목 때문에 잘못 반환됩니다.
나는 위의 함수를 사용하여 첫 번째 배열 배열을 얻은 다음, 관심이없는 태그를 포함한 모든 카드를 포함하는 PHP의 다른 배열을 뺍니다. 그러나이 솔루션은 매우 어색함을 느낍니다. 이 문제에 대해 가장 효율적인 접근 방법은 무엇입니까?
감사합니다, singultus
을 테스트하는 바이올린입니다 active_record –