0

我正在使用 codeigniter 框架。我对这个框架没有太多经验。我需要你们的帮助。我想加入两个不同数据库中的两个表。在这两个表中,我都有一个共同的列。我了解,首先我必须在文件 database.php 中创建一个单独的数据库组。我已经创建了该组,并且能够在我的模型中单独使用该组。我还在我的模型“默认组”中加载了另一个组。每当我尝试单独使用每个组时,它都可以正常工作。但我正在努力如何使用这两个数据库组加入两个数据库。

现在我想使用这两个单独的组连接两个不同数据库的表。但我不确定我到底在哪里犯了错误。

这是我的模型文件。

class Bar_graph extends CI_Model {

                public function __construct () {
                     parent::__construct();
                     $this->db=   $this->load->database('default', TRUE);//This is the default group
                     $this->db2 = $this->load->database('db2', TRUE); //This is the new group I have created
                 }
 //kalix2 and Asterik are my two different database               
               public function join_two_database ()
                {    
                      $cust_id=2;
                      $this->db->select('Kalix2.ph_Companies.CompanyName');
                      $this->db2->select_sum('Asterik.cdr.call_length_billable');
                      $this->db2->select('Asterik.cdr.calldate');
                      $this->db->where('Kalix2.ph_Companies.Cust_ID',$cust_id);
                      $this->db->from('Kalix2.ph_Companies');
                      $this->db2->group_by('Asterik.cdr.CompanyName');
                      $this->db->limit(5);
                      $this->db->join('Asterik.cdr','Kalix2.ph_Companies.CompanyName = Asterik.cdr.CompanyName','inner');
                      $query = $this->db->get();
                     if ($query->num_rows > 0) {
                     return $query-> result(); 
                    }
                }
4

2 回答 2

1

AFAIK,你不能在一个声明中加入这些。您一次只有一个与数据库的连接。您必须在一个数据库上运行查询,在第二个数据库上运行查询,然后在 PHP 中操作两者的结果。

于 2013-01-04T16:54:09.710 回答
0

函数 join_two_table() {

    $this->db->select("database1.tablename.first_name,database1.tablename.last_name,tablename.*");

    $this->db->from('database2.tablename');

    $this->db->join('database1.tablename', 'database2.tablename.user_id = database1.tablename.user_id');

    $this->db->where('database2.tablename.status', 'open');

    $this->db->order_by('database2.tablename.id', 'DESC');

    $query = $this->db->get();
    return $query->result();
}
于 2016-05-25T09:59:55.433 回答