在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
答案 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';