Reputation: 4617
I have the following three tables
+----------+ +--------+ +-------------+
| adv | | member | | removed_adv |
+==========+ +========+ +=============+
| id | | id | | id |
| group | | group | | adv_id |
| category | | email | | member_id |
| title | | pw | +-------------+
| path | +--------+
| duration |
+----------+
What I am trying to do is to get all the data from table adv, where the member table's group is equal to the adv table's group. If the member table's id is equal to the _removed_adv_ table's _member_id_, that data should be removed from the result set.
I am using CodeIgniter's Active Record.
Could someone please help me? I really don't know how to do this.
Upvotes: 1
Views: 858
Reputation: 4933
You can try this:
select * from adv join member
on adv.group=member.group
where member.id not in (select member_id from removed_adv)
For 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();
Upvotes: 1