MySQL插入到具有不同列名的表

时间:2019-06-10 12:49:55

标签: php mysql

我有3张桌子。 “机器”,“产品”,“机器产品”。

我的想法是将机器信息存储在“ machines”表中,并将“ machine_id”列设置为PRIMARY&UNIQUE,然后对“ products”表执行相同的操作,该列的名称为“ product_id”。

一台机器可能具有一个或多个产品,因此它们在“ machine_products”表中都匹配

表示例如下。

机器表

+------------+------------------+
| machine_id |   machine_code   |
+------------+------------------+
|      1     | C01.C03.C23 M.1  |
+------------+------------------+
|      2     | C07.08.09.10 M.1 |
+------------+------------------+
|      3     | C11.12 MONT.1    |
+------------+------------------+
|      4     | C13.14.21 MONT.1 |
+------------+------------------+
|      5     | C22 MONT.1       |
+------------+------------------+

产品表

+------------+--------------+
| product_id | product_code |
+------------+--------------+
|      1     | C01.00       |
+------------+--------------+
|      2     | C01.11       |
+------------+--------------+
|      3     | C01.21       |
+------------+--------------+
|      4     | C03.00       |
+------------+--------------+
|      5     | C03.01       |
+------------+--------------+

machine_products表

+----+------------+------------+
| id | machine_id | product_id |
+----+------------+------------+
|  1 |      1     |     70     |
+----+------------+------------+
|  2 |      1     |     73     |
+----+------------+------------+
|  3 |      1     |     78     |
+----+------------+------------+
|  4 |      1     |     83     |
+----+------------+------------+
|  5 |      2     |     100    |
+----+------------+------------+
|  6 |      2     |     208    |
+----+------------+------------+
|  7 |      3     |     101    |
+----+------------+------------+
|  8 |      3     |     108    |
+----+------------+------------+
|  9 |      3     |     112    |
+----+------------+------------+
| 10 |      4     |     113    |
+----+------------+------------+

我的问题是我想通过使用“ machine_code”列数据将数据插入“ machine_products”表中

当我拥有machine_productsproduct_code时,如何将记录添加到machine_code表中?

3 个答案:

答案 0 :(得分:0)

您可以在机器和产品之间使用笛卡尔积
并插入select

insert into  machine_products ( machine_id, product_id)
select  a.id, b.id 
from machine a 
cross join products b  

这样,将机器和产品之间的所有可能组合都插入到machine_products表中

答案 1 :(得分:0)

1)在Machines表中插入数据Machines表图像您获得了Machine表插入ID($ machine_id)

2)在“产品”表产品表图像中插入并获得product_id($ product_id)注意:您应在产品表中更新$ machine id

3)插入machine_products表machine_products表图像注意:在这里,您应该更新$ machine id&$ product id

答案 2 :(得分:0)

你能试试吗

Insert into machine_products ( machine_id, product_id) values( (select machine_id from machines where machine_code = $machine_code), (select product_id from products where product_code=$product_code))

您可以用$ machine_code和$ product_code代替您自己的值