【发布时间】:2018-02-16 20:47:35
【问题描述】:
如何使用 codeigniter 活动记录编写 where_in 语句子查询?
$query = $this->db->query("SELECT SUM(a.transaction_payment_amount) FROM
transaction_payment a WHERE a.transaction_link IN
(SELECT transaction_link FROM transaction WHERE transaction_type = '22'");
$result = $query->result();
现在如何将上述查询转化为 CI 活动记录?
我试过了:
$this->db->select("SUM(a.transaction_payment_amount)");
$this->db->from('transaction_payment a');
$this->db->where_in('a.transaction_link', "SELECT transaction_link from transaction WHERE transaction_type = '22'");
$query = $this->db->get();
$result = $query->result();
但它不起作用。
【问题讨论】:
-
如果可能的话,没有任何好处。它并不比使用查询方法时更便携。
-
@BrianGottier 好吧,我的查询只是一个例子,我的实际代码更长,更多的表和列,它变得有点难以阅读,有活动记录(如果它确实有相同的速度),将更整洁,更易于阅读。
-
如果您的查询更长更复杂,听起来您只需要使用格式/缩进使其更易于阅读。
-
@BrianGottier 好吧,当然,出于某种原因,我仍然更喜欢活动记录,只是想知道是否可以在活动记录中进行查询。
-
@Brian 查询构建器的最大优势在于 - 您可以轻松地将查询拆分为模型中的多个函数,并且仍然可以获得您想要的结果 - 使用单个查询除了事实之外这些好处是不存在的您可以制作独立于数据库的应用程序...
标签: php mysql codeigniter activerecord