2017-02-23 9 views
-1
UPDATE table1 
SET description = 'New description' 
WHERE language_code = 'en' AND table2 default_category_id = '11' 

テーブル1とテーブル2で正しく使用する方法。私はtable1を使用しているときだけそれを動作させることができます。2つのテーブルのWHERE欄のMySQL更新フィールド

+2

間の結合を使用してみては? – Mureinik

答えて

1

テーブル間に関係を作成する必要があります。

update table1 
set description = 'New desc' 
where language_code = 'en' 
and some_column in (select related_column 
        from table2 
        where default_category_id = '11') 
+0

some_columnとrelated_columnは同じ列ですか?これを得ていない。このエラーは代わりに#1054 - 'IN/ALL/ANYサブクエリ'の 'default_category_id'が不明です – medgalys

+0

some_columnはテーブル2(related_column)、PK/FK、結合カラム、基本*リレーショナル*データベースの考え方... – JohnHC

+1

DB構造のない@medgalysはここでは可能ですが、より具体的にはDB構造を提供する必要があります。 JohnHCがあなたに与えたことは、それを行う方法のアイディアです。それに応じてフィールドを置き換える必要があります。 – davejal

0

あなたが理解することが、この問題を容易にするためにテーブルの構造といくつかのサンプルデータを共有することができる2つのテーブル

update table1 t1 join table2 t2 on t1.key = t2.key 
set t1.desired_column = "value" 
where t2.desired_column = "value" 
関連する問題