【问题标题】:Codeigniter active record nested select issueCodeigniter 活动记录嵌套选择问题
【发布时间】:2013-01-06 06:16:38
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 你有什么尝试吗?我们不是来做你的工作的

标签: codeigniter activerecord select


【解决方案1】:

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

$this->db1
$this->db2

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

Connecting to Multiple Databases

Active Record Class and Joins

Debug the query using Profiler

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 2012-04-27
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    相关资源
    最近更新 更多