嗨,我正在使用codeigniter,我有一个像这样的表
我想获取PreferenceID
列1}}列中<{1}}值不存在的所有记录
在这种情况下,我也在使用PreferenceParentID
。并且EntityID
应该PreferenceParentID
假设我按!= 0
entityID
我的结果应该是
53
因为Couture , Denims
在两种情况下都不在PreferenceID
。我试过PreferenceParentID
但是做不到。请帮忙
这是我的查询
where_not_in()
我的查询结果是
$table = $this->mastables['shop_profile_preferences'];
$this->db->select('a.ProfilePreferenceID');
$this->db->from($table." as a");
$where2 = "(SELECT a.PreferenceParentID FROM ".$table.")";
$this->db->where_not_in('a.PreferenceID', $where2);
$this->db->where("a.EntityID",$shop_id);
$this->db->where('a.PreferenceParentID !=',0);
$query=$this->db->get();
if($query->num_rows()>0)
{
return $query->result_array();
}
else
{
return FALSE;
}
如何正确使用Array
(
[0] => Array
(
[ProfilePreferenceID] => 274
)
[1] => Array
(
[ProfilePreferenceID] => 275
)
[2] => Array
(
[ProfilePreferenceID] => 276
)
)
。或ids有任何其他方法。请帮忙 .....
提前谢谢。
更新
where_not_in()
答案 0 :(得分:4)
你不能用CodeIgniter的where_not_in()
做到这一点。因为第二个参数应该是一个数组而不是那样的字符串。
您可以使用通常的where()
方法。
$this->db->where('a.PreferenceID NOT IN (SELECT a.PreferenceParentID FROM `table_name`)', NULL, FALSE);
如果您想知道,上面代码中的第三个参数是阻止CodeIgniter尝试使用反引号来保护字段和表名。