从另一个表插入MySQL表

时间:2013-05-15 20:01:09

标签: mysql database

在MySQL数据库上工作时,我需要输入几百(几千)行表,其中部分数据来自第二个表。

基本上,Senario是:

我有一个表格,其中包含以下示例值:

SELECT DISTINCT object_id FROM table1 WHERE reference = 'ABC123';

返回说3个值:     12345     67890     66699

我需要将table1中的3行插入table2:

INSERT INTO table2 
(tbl2_unique_id, tbl1_obj_id,object_date) 
VALUES 
(XXXXXX,YYYYYY,NOW());

但是...

XXXXXX是从'475611'开始的增量数字(我无法使其成为auto_incremental)(这恰好是table2中的最后一个值)。

每行的YYYYYY是'12345',67890','66699'

给你

table2
---------------------------------
tbl2_unique_id, tbl1_obj_id, object_date
---------------------------------
475611         , 12345,  YYYY-MM-DD HH:MM:SS
475612         , 67890,  YYYY-MM-DD HH:MM:SS
475613         , 66699,  YYYY-MM-DD HH:MM:SS

有什么建议吗?

提前干杯

KS

2 个答案:

答案 0 :(得分:2)

您可以使用INSERT INTO...SELECT...FROM

INSERT INTO table2 (tbl1_obj_id,object_date) 
select DISTINCT object_id, NOW()
FROM table1 
WHERE reference = 'ABC123'

您会注意到我排除tbl2_unique_id因为它是自动增量,您可以排除它,因为在插入之前您将没有值。

答案 1 :(得分:1)

示例:

INSERT INTO orders (customer_cust_id, orderdatetime, message, taxrate, shippingprice)
SELECT '1', NOW(), null, taxrate, shippingprice FROM customer
WHERE cust_id='1';

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