使用 CodeIgniter ActiveRecord 连接三个表并过滤数据

Joining three tables and filtering data with CodeIgniter ActiveRecord

我有以下三个table

+----------+ +--------+ +-------------+
| adv      | | member | | removed_adv |
+==========+ +========+ +=============+
| id       | | id     | | id          |
| group    | | group  | | adv_id      |
| category | | email  | | member_id   |
| title    | | pw     | +-------------+
| path     | +--------+
| duration |
+----------+

我想做的是从 table adv 获取所有数据,其中 member table的等于advtable的。如果membertable的id等于_removed_adv_table的_member_id_,该数据应从结果集中删除。

我正在使用 CodeIgniter 的 Active Record

有人可以帮助我吗?我真的不知道该怎么做。

你可以试试这个:

select * from adv join member 
on adv.group=member.group
where member.id not in (select member_id from removed_adv)

对于 CodeIgniter:

$removed = // get removed records member_id to here;

$CI->db->select('ad');
$CI->db->from('adv ad');
$CI->db->join('mem m', 'ad.group=mem.group', 'left');
$CI->db->where_not_in('mem.id', $removed);
$query = $CI->db->get();