簡體   English   中英

是否可以使用CodeIgniter使用多個數據庫連接運行JOIN查詢?

[英]Is it possible to run a JOIN query using multiple database connections using CodeIgniter?

是否可以使用CodeIgniter的活動記錄實用程序連接來自不同數據庫的多個表?

我知道我必須在database.php創建兩個單獨的數據庫組,並在模型中手動加載它們:

$this->DB1= $this->load->database('somename1', TRUE);
$this->DB2= $this->load->database('somename2', TRUE);

但是,我不知道如何使用它們從兩個單獨的數據庫連接多個表。

我怎么能做到這一點?

據我所知,使用多個數據庫實例(即$DB1$DB2變量)無法做到這一點。

但是,如果您有一個可以訪問這兩個數據庫的用戶,則可以在表名前加上其數據庫名稱,並且它將起作用(至少使用MySQL - 我還沒有測試任何其他內容)。 例如,這段代碼:

$this->load->database('first');
$this->db->select('*')->from('users');
$this->db->join('test.hometowns', 'users.id = second.hometowns.user');
$query = $this->db->get();

將成功運行此查詢,返回預期結果:

SELECT * 
FROM (`users`) 
JOIN `second`.`hometowns` ON `users`.`id` = `second`.`hometowns`.`user`;

同樣,我只用MySQL測試過這個,而其他數據庫可能有關於跨越數據庫邊界的限制。 它還要求用戶帳戶實際上具有讀取兩個數據庫/表的權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM