構造が同一の 2 つのテーブルがあります。Table1
モデレートされたデータをtable2
保持し、残りを保持します。
表1
+--------+--------+---------------+--------+-------- ---+ | | "ID" | "名前" | "説明" | "タイプ" | "国" | +--------+--------+---------------+--------+-------- ---+ | | "5" | "a" | "×" | "1" | "米国" | | | "6" | "b" | "×" | "1" | "イギリス" | +--------+--------+---------------+--------+-------- ---+
表 2
+-----+----------+-----------+-----------------+ --------+-----------+----------+ | | "ID" | 組織ID | "名前" | "説明" | "タイプ" | "国" | "ステータス" | +-----+----------+-----------+-----------------+ --------+-----------+----------+ | | "1" | "5" | 「タイトル1」 | "説明 1" | "1" | "米国" | "2" | | | "2" | "6" | 「タイトル2」 | "説明 2" | "1" | "イギリス" | "2" | | | "3" | "6" | 「タイトル2」 | "説明 2" | "1" | "イギリス" | "2" | +-----+----------+-----------+-----------------+ --------+-----------+----------+
table 1
からのデータで更新するために以下のSQLを実行しましたが、table 2
うまくいきました。それらが実際に何であるかは、さまざまなタイトルと説明に対してユーザーが提案した編集です。そのため、同じものが複数存在する可能性がありますorgId
UPDATE table1 a
INNER JOIN table2 b
ON a.id = b.id
SET a.name = b.name,
a.description = b.description
WHERE a.id=1; // Problem lies here
私の問題は、 のみを取得table2
しid
、type
スクリプトcountry
でそれを上記の sql を含む関数に渡すことです。
WHERE
では、そこの句でどのテーブルを指定すればよいでしょうか。a ~ table1
またはである必要がありますb ~ table2
。現在はですが、クエリ文字列でa
の値を取得できず、複数あるため を使用できません。また、クエリ文字列でそれを取得するには、さらに多くのコードといくつかの変更が必要になります。a.id
orgId
使えばいいのかな
UPDATE table1 a
INNER JOIN table2 b
ON a.id = b.id
SET a.name = b.name,
a.description = b.description
WHERE b.id=3; // Can I specify id from b here
私はこれを試してみましたが、うまくいきますが、これは正しいことですか?