Я думаю, вам нужно добавить префикс ссылок на таблицы к имени базы данных.
Этот код не использует Query Builder или псевдонимы таблиц по нескольким причинам.
- Чтобы доказать концепцию нескольких баз данных, проще написать полную строку запроса.
- Я не уверен, насколько хорошо псевдонимы будут работать вместе с префиксами имени базы данных, а такжеЯ знаю, как псевдоним при включении имени БД.
Я проверяю возвращаемое значение db->query
, потому что это будет FALSE, если запрос вызывает ошибку.Если $query
- ЛОЖЬ, вызов $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
) вы используете.Я почти уверен, что базы данных должны быть на одном сетевом сервере.
Если вышеописанное работает, вы можете добавить псевдонимы, а затем, если это работает, реорганизовать его для использования Query Builder.Честно говоря, я не вижу причин для QB на основе показанного запроса.Но у вас могут быть более сложные потребности, которыми вы не делитесь.