我正在使用CodeIgniter 4进行编程,我正在使用CodeIgniter的model,因为我知道使用它是一个很好的实践。这是使用一个表进行查询的一个很好的方法,非常简单:
$this->myModel
->select('field')
->where('user_id', 1)
->findAll()
我甚至不用写table的名字。
但是,我不能执行子查询,特别是,我需要从另一个表读取user_id
:
$this->myModel
->select('field')
->whereIn('user_id', SUBQUERY)
->findAll()
子查询为select('id') from users where status='active'
。
然而,这并不奏效:
$this->myModel
->select('field')
->whereIn('user_id', $this->userModel->select('id)->where('status', 'active')->findAll() )
->findAll()
有没有一种方法可以用CodeIgniter的模型来实现它?或者最好的方法是什么?我应该用Query Builder来完成子查询,并将其与模型的使用混合起来吗?
谢谢!
1条答案
按热度按时间gxwragnw1#
代替:
使用这个:
第一个月
生成使用AND连接的WHERE字段IN('item ',' item ')SQL查询(如果适用):
可以使用子查询代替值数组:
附录
在您的特定情况下,也可以使用
$builder->join()
允许您编写查询的
JOIN
部分:即: