Mysql根据来自两个表的数据在第三表中插入数据

时间:2018-08-13 06:24:57

标签: mysql

我有下表:

order_temp

|---------------------|------------------|------------------|
|      order_id       |    sap_number    |   product_name   |
|---------------------|------------------|------------------|
|          1          |         123      |     earphones    |
|---------------------|------------------|------------------|
|          2          |         123      |      battery     |
|---------------------|------------------|------------------|
|          3          |         456      |      charger     |
|---------------------|------------------|------------------|
|          4          |         789      |       phone      |
|---------------------|------------------|------------------|

order

|---------------------|------------------|
|      order_id       |    sap_number    |
|---------------------|------------------|
|          1          |         123      |
|---------------------|------------------|
|          2          |         456      |
|---------------------|------------------|
|          3          |         789      |
|---------------------|------------------|

我想将数据插入到order_item表中,如果sap_number相同,则该数据应该具有相同的order_id。它应该看起来像这样:

order_item表:

|---------------------|------------------|------------------|
|     order_item_id   |     order_id     |   product_name   |
|---------------------|------------------|------------------|
|          1          |         1        |     earphones    |
|---------------------|------------------|------------------|
|          2          |         1        |      battery     |
|---------------------|------------------|------------------|
|          3          |         2        |      charger     |
|---------------------|------------------|------------------|
|          4          |         3        |       phone      |
|---------------------|------------------|------------------|

请帮助我查询order_item表的插入查询。

2 个答案:

答案 0 :(得分:1)

您可以使用此简单查询:

INSERT INTO order_item (order_id,product_name)
    SELECT b.order_id,a.product_name
    FROM order_temp a 
left join order b 
on a.sap_number=b.sap_number

答案 1 :(得分:0)

最简单的方法是使用子查询:

INSERT INTO order_item(order_id, product_name)
VALUES ((SELECT order_id,product_name FROM order
         INNER JOIN order_temp ON order.sap_number = order_temp.sap_number);