una query mostrar modelo insertar ejecutar diferente datos consultas consulta con complejas ala php mysql join codeigniter-2 multiple-databases

php - query - mostrar datos de una base de datos con codeigniter



Únase a la consulta de dos bases de datos en codeigniter (1)

Necesito escribir una consulta de combinación de dos tablas de dos bases de datos y buscar los datos unidos. Por ejemplo, considere que tengo una base de datos db1 que tiene algunas tablas llamadas compañías, planes, clientes. Supongamos que necesito unirme a las dos compañías de tablas y los planes con otra tabla ''cdr'' en otra base de datos db2, agrupándolos usando una columna similar.

La consulta que estoy ejecutando ahora se da a continuación:

function get_per_company_total_use ($custid) { $this->DB1->select(''ph_Companies.CompanyName''); $this->DB1->where(''ph_Companies.Cust_ID'', $custid); $this->DB2->select_sum(''cdr.call_length_billable'')->from(''cdr''); $this->DB2->group_by(''cdr.CompanyName''); $this->db->join(''Kalix2.ph_Companies'', ''Kalix2.ph_Companies.CompanyName = Asterisk.cdr.CompanyName''); $query = $this->db->get(); if($query->result()){ foreach ($query->result() as $value) { $companies[]= array($value->CompanyName,$value->call_length_billable); } return $companies; } else return FALSE; }

Pero mi consulta no está obteniendo los datos y arrojando un error. Esta misma consulta, la he ejecutado en una sola base de datos y está funcionando. Pero necesito ayuda para encontrar cómo se puede hacer esto con dos bases de datos.


Puede dar lo siguiente si necesita unir dos tablas de base de datos:

function get_per_company_total_use ($custid) { $this->db->select(''Kalix2.ph_Companies.CompanyName''); $this->db->where(''Kalix2.ph_Companies.Cust_ID'', $custid); $this->db->select_sum(''Asterisk.cdr.call_length_billable'')->from(''Asterisk.cdr''); $this->db->group_by(''Asterisk.cdr.CompanyName''); $this->db->join(''Kalix2.ph_Companies'', ''Kalix2.ph_Companies.CompanyName = Asterisk.cdr.CompanyName''); $query = $this->db->get(); if($query->result()){ foreach ($query->result() as $value) { $companies[]= array($value->CompanyName,$value->call_length_billable); } return $companies; } else return FALSE; }

Aquí en realidad no necesita dar la variable de conexión DB1 o DB2, simplemente proporcione $ this-> db.