web-dev-qa-db-ja.com

MYSQL、選択したフィールドをあるテーブルから別のテーブルにコピーする

MySQLでは、主キーに対応するTABLE1からTABLE2にすべてのRECORDSを含むFIELDをコピーするにはどうすればよいですか:EMPLOYEE no.

33
ix3

これを試して

INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
43
Anand

pdate別のテーブルの列を使用して1つのテーブルの列を使用する場合、いくつかのオプションがあります。

  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に設定)になります。

  2. サブクエリ:

    UPDATE table1
    SET SomeColumn = (
      SELECT SomeColumn
      FROM table2
      WHERE EmployeeNo = table1.EmployeeNo
    )
    

    これは、#1の左結合ソリューションと同等です。

すべての場合において、table1の行はtable2の1行にしか一致しないことが想定されていることに注意してください。

63
Andriy M

あるテーブルから別のテーブルにデータをコピーするためのクエリは次のとおりです。

Insert into table2 (field1, field2)  select field1, field2 from table1


選択した値のみをコピーする場合は、クエリでwhere句を使用します

Insert into table2 (field1, field2)  select field1, field2 from table1 where field1=condition


23
php
update
  table1 t1
  join table2 t2 on t2.field = t1.field
set
  t1.field1 = t2.matchingfield
where
  t1.whatever = t2.whatever
6
brigitte18

これを使用して、条件付きでtable1からtable2にすべてのレコードをコピーできます。

Insert into table2  select  * from table1 where field1=condition
2
Ntaganira