MySQLでは、主キーに対応するTABLE1
からTABLE2
にすべてのRECORDSを含むFIELDをコピーするにはどうすればよいですか:EMPLOYEE no.
?
これを試して
INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
pdate別のテーブルの列を使用して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
の行はtable2
の1行にしか一致しないことが想定されていることに注意してください。
あるテーブルから別のテーブルにデータをコピーするためのクエリは次のとおりです。
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