2015-02-06 8 views
0

내가 SQL 쿼리를 다음과 같이 여러 데이터베이스에 쿼리를 실행하려고 :CodeIgniter의 여러 데이터베이스 쿼리

// Collect clients db name 
$dbs = array(); 
foreach($cafes as $cafe) 
{ 
    $dbs[] = $cafe->db_name; // client_7 
} 

// Run multi database query 
foreach($dbs as $db) 
{ 
    $this->db->select("$db.orders.*,(select count($db.order_items.id) from $db.order_items where $db.order_items.siparis_id = orders.id) as urun_sayisi, (select sum($db.order_items.tutari) from $db.order_items where $db.order_items.siparis_id = orders.id) as price"); 
} 

$this->db->get()->result(); 

을 위의 예에서, 내가 카페 클라이언트가 각 클라이언트는 자신의 DB라는 이름의 예를 가지고 : client_7합니다. 나는 모든 클라이언트 명령을 목록으로 만들려고 노력하고있다. 나는 위의 쿼리 오류를 다음있어 : 필드 목록에서

알 수없는 테이블 'client_7을'

어떻게 여러 데이터베이스에서 주문 테이블에있는 모든 행을 표시 할 수 있습니다?

답변

3

앞서 테이블 이름을 데이터베이스 이름을 언급하시기 바랍니다 .. 예를

에 대한
SELECT userid FROM db1.user; 
SELECT userid FROM db2.user; 
+0

우수함! 그것은 작동하지만 복잡한 쿼리를 사용하여 다시 시도하겠습니다. – Bora

0

이 시도 :

<?php 
$secound_db= $this->load->database('database_two', TRUE); 
$query = $secound_db->get('person'); 
var_dump($query); 

Source

+0

이것은 단일 쿼리 여야하며 다른 데이터베이스의 동일한 명명 된 테이블에 전체 데이터를 나열해야합니다. – Bora