-1

可能重复:
如何在 CakePHP 中提供附加条件的同时查询基于 HABTM 关系的表?

请帮我在 cakephp 中实现这个

table safari:
id
name
duration

table region:
id
name

table regions_safaris:
safari_id
region_id

select s.name
from region r, safaris_regions sr, region r, safari s
where r.name='yourRegion'
and sr.region_id=r.id and s.id=sr.safari_id and s.duration=5;
4

2 回答 2

1

您应该将区域表更改为区域,并将 safari 表更改为 safaries 以使其与 cakephp 一起使用。在模型中建立关系后,您将使用查找。

//safaries_controller.php 
$this->Safari->find('all', array('fields'=>'Safari.name', 'conditions'=>array('Region.name'=>'yourRegion'));
于 2009-03-13T07:38:57.597 回答
1

我不确定您具体在努力解决什么问题,但是您可以通过将连接条件与选择条件分开来使您的查询更清晰:

select s.name
from safari s 
inner join regions_safaris sr on(s.id=sr.safari_id)
inner join region r on(sr.region_id=r.id)
where r.name='yourRegion' 
and s.duration=5;

您的查询也有使用 safaris_regions 而不是 region_safaris 的错误,并且两次对区域表进行别名。

于 2009-03-02T12:34:16.493 回答