CodeIgniter活动记录;将两个查询合并为一个?

时间:2016-08-11 10:09:17

标签: mysql sql codeigniter codeigniter-2

在我的第一个查询中,我循环遍历status open channel_id23 field_id_299的所有记录,获取列field_id_299 。字段entry_id是另一个channel的{​​{1}}。

第二个查询,然后使用此field_id_299 AS entry_id,获取列field_id_36

是否可以在一个查询中完成所有这些操作?

$query = ee()->db->select('cd.field_id_299')
             ->from('exp_channel_titles AS ct')
             ->join('exp_channel_data AS cd', 'ct.entry_id = cd.entry_id', 'left')
             ->where('ct.status', 'open')
             ->where('ct.channel_id', '23')                  
             ->get();

$query = ee()->db->select('field_id_36')
             ->from('exp_channel_data')
             ->where('entry_id', $entry_id)
             ->get();

1 个答案:

答案 0 :(得分:0)

尝试以下

$query = ee()->db->select('cd1.field_id_36')
             ->from('exp_channel_titles AS ct')
             ->join('exp_channel_data AS cd', 'ct.entry_id = cd.entry_id', 'left')
             ->join('exp_channel_data AS cd1', 'cd.field_id_299 = cd1.entry_id', 'left')
             ->where('ct.status', 'open')
             ->where('ct.channel_id', '23')                  
             ->get();