$this->fifo_db->select('u.name,d.title');
$this->fifo_db->from('tbl_user u');
$this->db->join('designations d','d.id = u.designationid','left');
$this->db->where(array('u.designationid > ' => 1,'d.salary > ' => '20000'));
$query = $this->fifo_db->get();
return $query->result_array();
试图通过在不同数据库的两个表上进行联接来获取CI格式的数据,但在同一数据库上会出现错误。
答案 0 :(得分:0)
我认为您需要在表引用前面加上数据库名称。
由于一些原因,此代码不使用查询生成器或表别名。
我检查db->query
的返回值,因为如果查询导致错误,它将返回FALSE。如果$query
为FALSE,则对$query->result_array()
的调用将引发异常。
您需要实际的数据库名称。我已经命名为dbU
和dbD
。
$sql = "SELECT dbU.tbl_user.name, dbD.designations.title FROM dbU.tbl_user
LEFT JOIN dbD.designations ON dbD.designations.id = dbU.tbl_user.designationid
WHERE dbU.tbl_user.designationid > 1 AND dbD.designations.salary > 20000";
$query = $this->db->query($sql);
if($query !== FALSE)
{
return $query->result_array();
}
return NULL;
我认为您使用哪个CI数据库对象(fifo_db
或db
)都没有关系。我很确定数据库需要位于同一网络服务器上。
如果上述方法可行,则可以添加别名,然后,如果可行,则将其重构为使用查询生成器。坦白说,根据显示的查询,我看不出任何进行质量检查的理由。但是您可能有更复杂的需求,无法共享。