Codeigniter活动记录嵌套选择问题

时间:2013-01-22 21:29:48

标签: codeigniter activerecord select

我正在为我的php项目使用codeigniter,但我没有多少经验。所以,请帮助我。

我有两个数据库。 1. Kalix2 2.星号

在这两个数据库中我都有一些表格。我想从两个不同的数据库连接表。我有以下查询,它在后端工作正常,但我不知道如何使用Active记录实现它。

SELECT  a.CompanyName, sum(ceil((b.billsec)/(c.Call_Limit*60))) as totalcall,
           hour(b.calldate) as use_hour FROM  Kalix2.ph_Companies a 
           INNER JOIN Asterisk.cdr b ON b.clid LIKE CONCAT('%', a.CompanyName, '%') 
           INNER JOIN Kalix2.ph_Plans c ON c.Comp_ID= a.Comp_ID 
           where  date(b.calldate)>='2013-01-15' and date(b.calldate)<='2013-1-20'  
           and c.Plan_Type='Per_Call' and a.CompanyName='ABCD' 
           group by hour(b.calldate);

请帮我将此查询转换为有效的记录格式。

1 个答案:

答案 0 :(得分:0)

如果需要,您应该能够将其转换为活动记录,但只需将其转换为查询绑定即可获得更好的性能。常见错误是尝试从多个类运行查询:

$this->db1
$this->db2

这不起作用,因为运行$ this-&gt; db1-&gt; get()因为它只知道db1中的数据而不是db2中的数据。详细地将database.table信息保存在连接中,只使用一个db对象,并使用分析器调试查询生成,你应该很好。

Connecting to Multiple Databases

Active Record Class and Joins

Debug the query using Profiler