web-dev-qa-db-ja.com

MySQLのあるテーブルから別の新しいテーブルにデータをコピーする方法は?

MySQLのあるテーブルから別のテーブルにデータをコピーしたい。

表1(既存のテーブル):

aid    
st_id
from_uid
to_gid
to_uid
created
changed
subject
message
link

表2(新しいテーブル)

st_id
uid
changed
status
assign_status

表1のデータのいくつかのフィールドを表2にコピーしたい。

これはMySQLクエリを使用して実行できますか?

130
Fero

これはあなたが望むことをします:

INSERT INTO table2 (st_id,uid,changed,status,assign_status)
SELECT st_id,from_uid,now(),'Pending','Assigned'
FROM table1

Table1のすべての行を含める場合。それ以外の場合、table1のサブセットのみを追加する場合は、WHEREステートメントを最後に追加できます。

これがお役に立てば幸いです。

249
jdias

フィールドをリストしたくなく、テーブルの構造が同じ場合、次のことができます。

INSERT INTO `table2` SELECT * FROM `table1`;

または、同じ構造を持つ新しいテーブルを作成する場合:

CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl;

挿入選択のリファレンス ; テーブル作成選択の参照

58
Bryan

別のテーブルからデータを簡単に取得できます。必要なフィールドのみを追加する必要があります。

Mysqlクエリは次のとおりです。

INSERT INTO table_name1(fields you want)
  SELECT fields you want FROM table_name2


ここで、値はtable2からtable1にコピーされます

20
php
CREATE TABLE newTable LIKE oldTable;

次に、データをコピーします

INSERT INTO newTable SELECT * FROM oldTable;
4
Seymur Asadov

最良のオプションは、mysqlでINSERT ... SELECTステートメントを使用することです。

http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

4
dexter.ba
SELECT *
INTO newtable [IN externaldb]
FROM table1;

http://www.w3schools.com/sql/sql_select_into.asp

3
mikey
INSERT INTO Table1(Column1,Column2..) SELECT Column1,Column2.. FROM Table2 [WHERE <condition>]
2
Nana Partykar

このコードを試すことができます

insert into #temp 
select Product_ID,Max(Grand_Total) AS 'Sales_Amt', Max(Rec_Amount) ,'',''
from Table_Name group by Id
0
Biddut

最初にtable2を作成する必要があります。

 table2(field1、field2、...)
 select field1、field2、.... 
 from table1 
 where condition; 
0

テーブルが存在する場合。 table_name select * from old_taleに挿入してみてください。

テーブルが存在しない場合。 old_tableのようなテーブルtable_nameを作成してみてください。 table_name select * from old_taleに挿入します。

0
Jac Tian

上記のクエリは、顧客の一致する列を持つクライアントテーブルを作成した場合にのみ機能します

INSERT INTO clients(c_id,name,address)SELECT c_id,name,address FROM customer
0
Qanuni