如何在cakephp中实现这一点
可能重复:如何在cakephp中实现这一点,php,cakephp,Php,Cakephp,可能重复: 请帮我用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.
请帮我用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;
我不确定您具体在做什么,但您可以通过将连接条件与选择条件分离,使查询更清晰:
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\u regions而不是regions\u safaris的错误,并且对regions表使用了两次别名。您应该将region表更改为regions,将safari表更改为safaries,以使其与cakephp一起工作。在模型中设置关系后,将使用find
//safaries_controller.php
$this->Safari->find('all', array('fields'=>'Safari.name', 'conditions'=>array('Region.name'=>'yourRegion'));
您需要更具体地说明您在哪里挣扎。另外,在查询中,区域表的别名是r的两倍