请帮我在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;
答案 0 :(得分: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而不是regions_safaris,并且对区域表进行了两次别名。
答案 1 :(得分:1)
您应该将区域表更改为区域,并将safari表更改为safari以使其与cakephp一起使用。在模型中设置关系后,您将使用查找。
//safaries_controller.php
$this->Safari->find('all', array('fields'=>'Safari.name', 'conditions'=>array('Region.name'=>'yourRegion'));