2009-01-13 90 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,而不是左内连接加入。希望这可以帮助。