сравни таблицы и получи данные в codeigniter - PullRequest
0 голосов
/ 10 января 2019

у меня есть две таблицы как следующие 1> пользователи 2> profile_action

id  name                uid profile_id  action_type
1   aa                  1   2           bookmark
2   bb                  2   3           view
3   cc                  1   3           like

Теперь я хочу данные, основанные на следующих двух условиях

  • где uid! = M_session_id в таблице действий профиля
  • и удалить пользователей, которые мне понравились или добавили в закладки

так что для этого я сделал следующее

$bscDta = $this->db->select('profile_id')
                            ->from('profile_action')
                            ->where(array('user_id'=>1,'action_type'=>'like'))
                            ->or_where('action_type','bookmark')
                            ->get();
$exceptionalId = $bscDta->result();
foreach ($exceptionalId as $exid) {
    $excptnlId .= $exid->profile_id.",";
}
$excptnlId = rtrim($excptnlId,",");
$quickSrch = $this->db->select('*')
                    ->from('users')
                    ->where(array('id!='=>1,'status'=>'Active'))
                    ->where_not_in('id', $excptnlId)
                    ->get();
$quickSrchData = $quickSrch->result();

Но он вернет следующий запрос

SELECT * FROM `users` WHERE `id` != 1 AND `status` = 'Active' AND `id` NOT IN('2,3')

и о / п мне

[id] => 3 's data

там, где ожидаемое значение o / p пустое. так есть ли другой способ сделать обе операции в одной операции.

1 Ответ

0 голосов
/ 10 января 2019

Попробуйте вот так с JOIN

$this->db->select('users.*, profile_action.profile_id');
$this->db->from('users');
$this->db->join('profile_action', 'users.id = profile_action.uid');
$this->db->where("(profile_action.action_type = like OR profile_action.action_type = bookmark)");
$this->db->where('user.user_id !=', 1);
$this->db->where('user.status', 'Acitve');
return $this->db->get()->result();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...