gpt4 book ai didi

php - 在 Codeigniter 中比较表并获取数据

转载 作者:行者123 更新时间:2023-11-29 16:28:08 25 4
gpt4 key购买 nike

我有两个表,如下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

现在我想要基于以下两个条件的数据

  • 其中,profile_action 表中的 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 为空。那么还有其他方法可以完成这两项操作吗 在单一操作中。

最佳答案

尝试使用 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();

关于php - 在 Codeigniter 中比较表并获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54122995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com