2015-02-06 76 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