-1

重複の可能性:
CakePHP で追加の条件を提供しながら、HABTM リレーションシップに基づいてテーブルをクエリするにはどうすればよいですか?

Plsはこれを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

リージョン テーブルをリージョンに変更し、サファリ テーブルをサファリに変更して、cakephp で動作するようにする必要があります。モデルでリレーションを設定したら、find を使用します。

//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;

クエリには、regions_safaris の代わりに safaris_regions を使用し、regions テーブルを 2 回エイリアスするという間違いもありました。

于 2009-03-02T12:34:16.493 に答える