我的查询有问题,我需要连接来自不同数据库的两个表现在我的问题是如何执行查询。我从这里得到了我的语法格式
请先访问此链接,以便了解我的SQL语法为何如此
http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-query
$ENROLLEES = $this->load->database('ENROLLEES', TRUE);
$ACCOUNTS = $this->load->database('ACCOUNTS', TRUE);
$SELECT = "SELECT $ACCOUNTS.BALANCES_TABLE.IDNO, $ACCOUNTS.BALANCES_TABLE.balance";
$FROM = "FROM $ACCOUNTS.BALANCES_TABLE";
$WHERE = "$ACCOUNTS.BALANCES_TABLE.IDNO IN (SELECT $ENROLLEES.ENROLLEES_TABLE.IDNO FROM $ENROLLEES.ENROLLEES_TABLE)";
$SQL = $SELECT ." ". $FROM ." ". $WHERE;
主要问题:如何执行我的查询?
如果我们在codeIgniter中这样做:
$ENROLLEES->query($SQL); or $ACCOUNTS->query($SQL);
如何执行我有多个数据库的查询?我在这里提供什么?[database]->query($SQL);
?
答案 0 :(得分:38)
$query = $this->db->query($SQL);
return $query->result_array();
答案 1 :(得分:12)
如果数据库共享服务器,请使用具有两个数据库的privelele的登录名,并且只需运行类似于以下内容的查询:
$query = $this->db->query("
SELECT t1.*, t2.id
FROM `database1`.`table1` AS t1, `database2`.`table2` AS t2
");
否则我认为您可能需要单独运行2个查询并在之后修复逻辑。
答案 2 :(得分:3)
我可以看到@Þaw提到的内容:
$ENROLLEES = $this->load->database('ENROLLEES', TRUE);
$ACCOUNTS = $this->load->database('ACCOUNTS', TRUE);
CodeIgniter支持多个数据库。您需要像上面那样将两个数据库引用保存在单独的变量中。到目前为止,你是对的/正确的。
接下来你需要使用它们,如下所示:
$ENROLLEES->query();
$ENROLLEES->result();
和
$ACCOUNTS->query();
$ACCOUNTS->result();
而不是使用
$this->db->query();
$this->db->result();
请参阅此内容以供参考: http://ellislab.com/codeigniter/user-guide/database/connecting.html
答案 3 :(得分:1)
http://www.bsourcecode.com/codeigniter/codeigniter-select-query/
$query = $this->db->query("select * from tbl_user");
OR
$query = $this->db->select("*");
$this->db->from('table_name');
$query=$this->db->get();
答案 4 :(得分:0)
return $this->db->select('(CASE
enter code hereWHEN orderdetails.ProductID = 0 THEN dealmaster.deal_name
WHEN orderdetails.DealID = 0 THEN products.name
END) as product_name')
答案 5 :(得分:0)
$ this-> db-> select('id,name,price,author,category,language,ISBN,publish_date');
$this->db->from('tbl_books');