2009-01-13 78 views
0

我被CakePHP難倒了如何在CakePHP中查詢數據庫,並且僅當$ data查詢表[id]具有匹配的[sub_id]在第二個表

的標準查詢:

$data = $this->Table1->findAll(array("Table1.deleted" => "0"), null, "Table1.id DESC", 25, null, 1); 

但我希望在$數據[「表1」] [「身份證」]在['表2中只已值投入$數據'] ['sub_id']

謝謝!

回答

1

如果您的人際關係設置正確,它應該自動執行此操作。你可以粘貼你的模型關係設置爲Table1和Table2?

0

Supernovah -

請澄清一兩件事對我來說:你寫的,你要在table1.id在table2.sub_id發現只有投入$數據值。你的意思是說table2.sub_id是一個外鍵,鏈接到table1?

我認爲Beau是正確的 - 如果使用HABTM或belongsTo等變量正確鏈接模型,findAll應自動從table2中提取相關記錄。

最後需要注意的是模型關聯會受到Model->遞歸值的影響。如果您在代碼中更改了遞歸屬性的值,則會改變模型關係允許在給定查詢上運行的深度。

HTH!

0

在該模型中,關係數組中添加:

$hasMany = array(
..... 
'required' => true 
.... 
); 

這應該讓它做的SQL,而不是左內連接加入。希望這可以幫助。