0

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

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

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

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);

请帮我将此查询转换为活动记录格式。

4

1 回答 1

0

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

$this->db1
$this->db2

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

连接到多个数据库

Active Record 类和连接

使用 Profiler 调试查询

于 2013-01-22T22:26:03.483 回答