38

MySQLで、主キーに対応するすべてのRECORDSTABLE1を含むFIELDをコピーするにはどうすればよいですか?TABLE2EMPLOYEE no.

4

8 に答える 8

86

別のテーブルの列を使用して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すべての場合において、の行はの1つの行にしか一致しないと想定されていることに注意してくださいtable2

于 2012-06-23T10:30:57.997 に答える
54

これを試して

INSERT INTO `table2` (`field_name2`) SELECT `field_name` FROM `table1`
于 2012-06-23T09:48:15.063 に答える
26

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

INSERT INTO `table2` (`field1`, `field2`)
    SELECT `field1`, `field2` FROM `table1`

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

INSERT INTO `table2` (`field1`, `field2`)
    SELECT `field1`, `field2` FROM `table1`
    WHERE `field1` = condition
于 2013-12-26T12:17:23.877 に答える
6
update
  table1 t1
  join table2 t2 on t2.field = t1.field
set
  t1.field1 = t2.matchingfield
where
  t1.whatever = t2.whatever
于 2015-11-27T09:01:57.987 に答える
3

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

Insert into table2  select  * from table1 where field1=condition
于 2017-01-01T12:15:52.400 に答える
1

テーブルの構造が次のようになっているとします。

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」条件を追加できます。

ありがとうございました!!!

于 2019-12-09T07:14:49.033 に答える
-1

INSERT INTO table_1column-1column-2)SELECT column-1、column-2 FROM table_2;

于 2017-11-05T00:58:51.543 に答える
-2

Insert into Delivery (DeliveredDate, appid, DownloadSize, UploadSize) select Delivered, Appid, DownloadSize,UploadSize from Delivery_Summary;

于 2018-10-23T09:10:54.770 に答える