Как выполнить мой SQL-запрос в CodeIgniter

У меня проблема с моим запросом и Мне нужно объединить две таблицы из разных баз данных. Теперь моя проблема заключается в том, как я могу выполнить свой запрос. Я получил формат синтаксиса здесь

Пожалуйста, зайдите сначала по этой ссылке, чтобы понять, почему мой синтаксис SQL похож на этот
http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-query


Im с помощью CodeIgniter, и вот идея моего запроса:
Обратите внимание, как я выбираю мои столбцы: DATABASE_NAME.TABLE_NAME.COLUMN_NAME
$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);

Как я могу выполнить свой запрос, что Im имеет несколько баз данных? Что я предложу здесь
[database]->query($SQL);?

Ответ 1

$query = $this->db->query($SQL);

return $query->result_array();

Ответ 2

Если общий сервер баз данных имеет логин, который имеет привилегии для обеих баз данных и просто выполняет запрос, похожий на:

$query = $this->db->query("
SELECT t1.*, t2.id
FROM `database1`.`table1` AS t1, `database2`.`table2` AS t2
");

В противном случае, я думаю, вам придется запускать два запроса отдельно и впоследствии исправить логику.

Ответ 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

Ответ 5

 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')

Ответ 6

$this- > db- > select ('id, name, price, author, category, language, ISBN, publish_date');

       $this->db->from('tbl_books');