привет, я использую codeigniter, и у меня есть такая таблица
я хочу получить все записи, где значение PreferenceID
отсутствует в 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
)
)
как правильно использовать where_not_in()
. или идентифицирует там любые другие методы. пожалуйста помоги .....
заранее спасибо.
UPDATE
$table = $this->mastables['shop_profile_preferences'];
$this->db->select('a.ProfilePreferenceID,a.ProfilePreferenceValue');
$this->db->from($table." as a");
$this->db->where('a.PreferenceParentID !=',0);
$this->db->where('a.PreferenceID NOT IN (SELECT a.PreferenceParentID FROM '.$table.')', NULL, FALSE);
$this->db->where("a.EntityID",$shop_id);
$query=$this->db->get();
if($query->num_rows()>0)
{
return $query->result_array();
}
else
{
return FALSE;
}