2017-07-13 10 views
0

2つのテーブルの間で条件を設定するにはどうすればよいですか?別のテーブルに設定された条件に基づいてデータベーステーブルを更新していますか?

1テーブルには、別のテーブルに設定された値に基づいて値を変更する必要があるIDがあります。

私はこれまでのところ質問しています...それが動作するかどうかは分かりません。

UPDATE table1 set value='2' INNER JOIN table2 WHERE CONVERT(value USING utf8) LIKE '%text%')したがって、最初の表の値が2の場合、表2の同じ項目には特定のカテゴリが割り当てられます。クエリでは、テーブル2のIDが、値を含むテーブル1のIDと同じであることを確認する必要があります。

+1

使用しているデータベースで質問にタグを付けます。サンプルデータと望ましい結果も提供してください。あなたの参加には 'ON'句がありません。 –

+0

@GordonLinoffはmysqlデータベースを使用しています。 – user1114968

答えて

3

あなたのコードはMySQLのようです。その場合は、正しい構文は、より多くのこのようなものです:

UPDATE table1 t1 INNER JOIN 
     table2 t2 
     ON t1.id = t2.id 
    set t1.value = '2' 
WHERE CONVERT(t1.value USING utf8) LIKE '%text%'); 

あなたの質問は、実際のJOIN条件に少し曖昧ですが、それは、クエリの構造です。

+0

テーブル1が条件であり、テーブル2が更新されるデータになります。表1のIDの値に特定のテキストが含まれていると、その表のIDは表2の特定の値に設定されます。したがって、表1の200行に必要なテキストが含まれていると、かわった。なぜあなたはあなたの質問に 'table1 t1'と' table2 t2'を持っていますか?なぜ 'table1'と' table2'だけではないのですか? – user1114968

+0

は列名を修正する必要がありましたが、クエリは機能しました(もちろん私のデータベーステーブルの名前を使用して)。 – user1114968

関連する問題