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クエリを使用して実行できますか?
これはあなたが望むことをします:
INSERT INTO table2 (st_id,uid,changed,status,assign_status)
SELECT st_id,from_uid,now(),'Pending','Assigned'
FROM table1
Table1のすべての行を含める場合。それ以外の場合、table1のサブセットのみを追加する場合は、WHEREステートメントを最後に追加できます。
これがお役に立てば幸いです。
フィールドをリストしたくなく、テーブルの構造が同じ場合、次のことができます。
INSERT INTO `table2` SELECT * FROM `table1`;
または、同じ構造を持つ新しいテーブルを作成する場合:
CREATE TABLE new_tbl [AS] SELECT * FROM orig_tbl;
別のテーブルからデータを簡単に取得できます。必要なフィールドのみを追加する必要があります。
Mysqlクエリは次のとおりです。
INSERT INTO table_name1(fields you want)
SELECT fields you want FROM table_name2
ここで、値はtable2からtable1にコピーされます
CREATE TABLE newTable LIKE oldTable;
次に、データをコピーします
INSERT INTO newTable SELECT * FROM oldTable;
最良のオプションは、mysqlでINSERT ... SELECTステートメントを使用することです。
SELECT *
INTO newtable [IN externaldb]
FROM table1;
INSERT INTO Table1(Column1,Column2..) SELECT Column1,Column2.. FROM Table2 [WHERE <condition>]
このコードを試すことができます
insert into #temp
select Product_ID,Max(Grand_Total) AS 'Sales_Amt', Max(Rec_Amount) ,'',''
from Table_Name group by Id
最初にtable2を作成する必要があります。
table2(field1、field2、...) select field1、field2、.... from table1 where condition;
テーブルが存在する場合。 table_name select * from old_taleに挿入してみてください。
テーブルが存在しない場合。 old_tableのようなテーブルtable_nameを作成してみてください。 table_name select * from old_taleに挿入します。
上記のクエリは、顧客の一致する列を持つクライアントテーブルを作成した場合にのみ機能します
INSERT INTO clients(c_id,name,address)SELECT c_id,name,address FROM customer