0

構造が同一の 2 つのテーブルがあります。Table1モデレートされたデータをtable2保持し、残りを保持します。

表1

+--------+--------+---------------+--------+-------- ---+
| | "ID" | "名前" | "説明" | "タイプ" | "国" |
+--------+--------+---------------+--------+-------- ---+
| | "1" | "a" | "×" | "1" | "米国" |
| | "2" | "b" | "×" | "1" | "イギリス" |
+--------+--------+---------------+--------+-------- ---+

表 2

+-----+----------+-----------------+--------+--- ------+----------+
| | "ID" | "名前" | "説明" | "タイプ" | "国" | "ステータス" |
+-----+----------+-----------------+--------+--- ------+----------+
| | "1" | 「タイトル1」 | "説明 1" | "1" | "米国" | "0" |
| | "2" | 「タイトル2」 | "説明 2" | "10" | "イギリス" | "0" |
+-----+----------+-----------------+--------+--- ------+----------+

table 1からのデータで更新するために以下のSQLを実行しましたが、table 2うまくいきました。唯一の問題は、id両方の場所で を指定する必要があることです。1 か所だけ指定するとしたら、どこに移動しますか?

UPDATE table1 dest, 
       (SELECT name, 
               description 
        FROM   table2 
        WHERE  id = 1) src 
SET    dest.name = src.name, 
       dest.description = src.description 
WHERE  dest.id = 1; 

この方法は次のとおりです。

UPDATE table1 SET name AND description =
(
   SELECT name, description from table2
   WHERE id=1 AND country=us and type=10
) WHERE id=idfromselect AND country=countryfromselect AND type=typefromselect

idとをどこに置くべきかわかりませんremaining conditions。手伝ってくれますか?

4

2 に答える 2

1

結合として実行し、結合条件に ID を入れて、WHERE 句で ID を確認するだけです。

このようなもの:-

UPDATE table1 dest INNER JOIN table2 src ON dest.id = src=id
SET dest.name = src.name, dest.description = src.description 
WHERE dest.id=1 ;

その他の制限は WHERE 句に追加できます

于 2013-06-04T11:35:40.490 に答える
1

INNER JOINクエリを使用して、table2 のデータに基づいて table1 を更新し、条件をWHERE句に入れることができると思います

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;
于 2013-06-04T11:36:04.077 に答える