0

codeignitorアクティブレコードを使用して、2つの異なるデータベースから2つのテーブルを結合する方法を知っている人はいますか?

次の 2 つのデータベース インスタンスがあります。

      $this->DB2 = $this->load->database('asterisk', TRUE);
      $this->DB1 = $this->load->database('default', TRUE); 

これら 2 つの異なるデータベースから 2 つのテーブルを結合したいと考えています。どうすればこれを達成できますか?

ドキュメントのリンクがあれば教えてください。

4

3 に答える 3

0

各データベースにプレフィックスを付けてみましたか?これをテストするためのローカルサーバーへのアクセス権がありませんが、両方のデータベースへのアクセス許可がある場合は、これと同様の機能が動作するはずです。

$this->db->select('*');
$this->db->from('asterisk.blogs');
$this->db->join('default.comments', 'default.comments.id = asterisk.blogs.id');
于 2013-02-14T18:59:36.803 に答える
0

2 つの異なるデータベースに参加できず、通常の SQL ステートメントを使用したくない場合は、ActiveRecord キャッシュを使用してこれを行うことができます。

http://ellislab.com/codeigniter/user-guide/database/active_record.html#caching

おそらく機能しない「疑似コード」ですが、始めるのに役立つかもしれません。

$this->db = $this->load->database('asterisk', TRUE);
$this->db->start_cache();
$this->db->select('*');
$this->db->stop_cache();
$this->db->get('table1');

$this->db = $this->load->database('default', TRUE);
$this->db->select('*');
$this->db->from('table2');
$this->db->join('table1', 'table1.id = table2.id');
$this->db->get();
于 2013-02-14T19:36:39.147 に答える