2015-02-06 91 views
0

我試着用下面的SQL查詢多個數據庫運行查詢:笨多個數據庫查詢

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

在上面的例子中,我有網吧客戶和每個客戶都有自己的數據庫名爲EX:client_7。我正在嘗試列出所有客戶訂單。我得到了下面的錯誤與上面的查詢:在字段列表

未知表「client_7」

如何列出從多個數據庫的訂單表中的所有行?

回答

3

請註明數據庫名稱前面的表名.. 例如

SELECT userid FROM db1.user; 
SELECT userid FROM db2.user; 
+0

太好了!它的工作原理,但我會再次嘗試複雜的查詢。 – Bora 2015-02-06 07:57:13

0

試試這個:

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

Source

+0

它應該是單個查詢並列出不同數據庫上相同命名錶上的整個數據。 – Bora 2015-02-06 07:58:09