使用 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();
我有以下三个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();