【问题标题】:Joining three tables and filtering data with CodeIgniter ActiveRecord使用 CodeIgniter ActiveRecord 连接三个表并过滤数据
【发布时间】:2015-01-15 08:17:19
【问题描述】:

我有以下三张表

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

我要做的是从表 adv 中获取所有数据,其中 member 表的 group 等于 adv 表的。如果 member 表的 id 等于 _removed_adv_ 表的 _member_id_,则应从结果集中删除该数据。

我正在使用 CodeIgniter 的 Active Record

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

【问题讨论】:

    标签: php mysql codeigniter activerecord


    【解决方案1】:

    你可以试试这个:

    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(); 
    

    【讨论】:

    • 非常感谢您的回答能否告诉我如何使用 codeigniter 的活动记录来做到这一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 2015-12-12
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    相关资源
    最近更新 更多