MySQLで、主キーに対応するすべてのRECORDSTABLE1
を含むFIELDをコピーするにはどうすればよいですか?TABLE2
EMPLOYEE no.
8 に答える
別のテーブルの列を使用して1つのテーブルの列を更新する場合は、次のオプションがあります。
参加:
UPDATE table1 AS t1 INNER JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo SET t1.SomeColumn = t2.SomeColumn
または、左結合にすることもできます。
UPDATE table1 AS t1 LEFT JOIN table2 AS t2 ON t1.EmpoyeeNo = t2.EmployeeNo SET t1.SomeColumn = t2.SomeColumn
これは、一致が発生しなかった値を本質的に空にします(NULLに設定します)。
サブクエリ:
UPDATE table1 SET SomeColumn = ( SELECT SomeColumn FROM table2 WHERE EmployeeNo = table1.EmployeeNo )
これは、#1の左結合ソリューションと同等です。
table1
すべての場合において、の行はの1つの行にしか一致しないと想定されていることに注意してくださいtable2
。
これを試して
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
あるテーブルから別のテーブルにデータをコピーするためのクエリは次のとおりです。
INSERT INTO `table2` (`field1`, `field2`)
SELECT `field1`, `field2` FROM `table1`
選択した値のみをコピーする場合は、クエリでwhere句を使用します
INSERT INTO `table2` (`field1`, `field2`)
SELECT `field1`, `field2` FROM `table1`
WHERE `field1` = condition
update
table1 t1
join table2 t2 on t2.field = t1.field
set
t1.field1 = t2.matchingfield
where
t1.whatever = t2.whatever
これを使用して、条件付きですべてのレコードをからにコピーできtable1
ますtable2
。
Insert into table2 select * from table1 where field1=condition
テーブルの構造が次のようになっているとします。
TableA-Col1、Col2、Col3 TableB-Col1、Col2、Col3
同じデータベース内の1つのテーブルから別のテーブルにデータを転送するために、テーブルのすべての列を選択する必要はありません。TableAからTableBに行をコピー(挿入)できます。
次のようにコーディングします-
Insert into TableB (Col1, Col2 ,Col3)
Select Col1, Col2 ,Col3 from TableA
これもできます-
Insert into TableB (Col1, Col2, Col3)
Select * from TableA
どちらのコードも機能します。要件を確認する必要があります。
ジェネリックコード-
INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition;
必要に応じて、「Where」条件を追加できます。
ありがとうございました!!!
INSERT INTO table_1
(column-1
、column-2
)SELECT column-1、column-2 FROM table_2;
Insert into Delivery (DeliveredDate, appid, DownloadSize, UploadSize) select Delivered, Appid, DownloadSize,UploadSize from Delivery_Summary;