2010-08-02 109 views
0

將以下查詢轉換爲cakephpquery。如何使用Cakephp連接兩個不同的數據庫表?

"SELECT * FROM user1.user_favourites,esl.esl_lyrics 
WHERE 
    esl_lyrics.id=user_favourites.fav_recordID 
    AND user_favourites.fav_userID=".$user_id." 
    AND user_favourites.fav_widgetID=$wid_id"; 

模型文件esl.php和userFavourite.php DB是user1和ESL。 數據庫表格是user1中的user_favourites和esl DB中的esl_lyrics。

PLZ給details.what變化是esl.php做,userFavourite.php

請幫我...

+0

你已經試過了什麼?你的模型文件是什麼樣子的?你讀過這個:http://book.cakephp.org/view/1039/Associations-Linking-Models-Together – deceze 2010-08-02 05:39:11

回答

0

這將是很難確定寫什麼,直到你可以提供一個數據圖爲您正在使用的各種ID。由於您不符合SQL中的標準,因此各個表中的所有字段都命名爲不同。但這裏是我目前瞭解的內容:

esl_lyrics.id = user_favorites.fav_recordID 

從您的描述中有兩種型號。所以你需要確保你有兩者之間的關係。這需要您確定它是否屬於,hasOne,hasMany等。 它也顯示您正在使用多個數據庫(模式),因此您需要配置database.php以便您可以訪問每個數據庫。

一旦所有的設定,你應該能夠訪問數據爲:

$this->Model1->Model2->find('all', array('conditions' => array('Model1.id' => 'Model2.id', 'Model2.user_id' => $user_id, 'Model2.widgetID' => $wid_id))); 

它會返回一個數組從兩個模型中的數據。但是,除非你可以分享你的模型的外觀和ID等的映射,否則這將是一個很好的答案。

相關問題