2012-04-23 14 views
1

これまでにサブクエリを使用したことがなく、UPDATESELECTを配置する際に問題が発生しました。UPDATEクエリ内のSELECTサブクエリ

ここではを使用していますが、アクティブレコードクラスに固執したいのですが、それ以外は何もありませんが、生のSQLで作業できます。

はここでARクラスを使用して私の最後の試みです:

$this->db->select('locations.id, locations.name'); 
$this->db->join('locations','location_relationships.id = locations.id'); 
$sub = $this->db->_compile_select(); 

$this->db->_reset_select(); 

$this->db->where('id', $location_id); 
$this->db->where('group_id', $team_id); 
$query = $this->db->update('location_relationships', $data); 

基本的に、私はこのlocation_relationshipsテーブル内の値を更新しています、そしてときには、同じテーブル内のいくつかの関連するセルを選択したい起こり、他の1 (locations)。したがって、SELECTサブクエリにはJOINもあります。

助けていただけたら幸いです!

+0

これは、あなたがhttp://codeigniter.com/wiki/Subqueries – allen213

+0

@ allen213近くに役立つかもしれないが、それはUPDATE'クエリ 'の下で、特にカバーしていません。私はこれまで読んできましたが、実際にMySQLの制限があるかもしれません... 'UPDATE'の下に' SELECT'はありません。 Odd .. – Gavin

+0

クエリをraw sqlに書き込み、アクティブなレコードに書き込む前にsqlクライアントで正しく動作することを確認してください。 – Catfish

答えて

0

UPDATEを先に入れて、SELECTを実行します。

は、その後、あなたは次を取り除くことができます:$sub = $this->db->_compile_select(); $this->db->_reset_select();

関連する問題