20

クエリに問題があり、異なるデータベースの 2 つのテーブルを結合する必要があります。問題は、クエリを実行する方法です。ここから構文形式を取得しました

最初にこのリンクにアクセスして、私の SQL 構文が
http://www.x-developer.com/php-scripts/sql-connecting-multiple-databases-in-a-single-queryのようになっている理由を理解してください。


私は 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);

複数のデータベースがあるクエリを実行するにはどうすればよいですか? ここで何を提供します
[database]->query($SQL);か?

4

6 に答える 6

41
    $sql="Select * from my_table where 1";    
    $query = $this->db->query($SQL);
    return $query->result_array();
于 2015-04-07T11:58:07.647 に答える
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

于 2013-08-16T13:19:10.957 に答える
0

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

       $this->db->from('tbl_books');
于 2018-01-18T11:41:05.893 に答える