我通常非常机智,但我被困在这一个。任何帮助,将不胜感激。mysql通过加入插入外部数据
假设我有一张农产品表,就像这样,包括每种农产品类型的已售/已存货数量。
+--------------+--------------+------+-----+
| Field | Type | Null | Key |
+--------------+--------------+------+-----+
| produce_type | varchar(100) | NO | PRI |
| sold_count | int(8) | YES | |
| stock_count | int(8) | YES | |
+--------------+--------------+------+-----+
我在使用时间为每个“存量”和“卖”计数的外部数据做一个单独的插入,与数百至数千produce_types的。我可能只有在'stock'或'sold'数据中才存在给定的produce_type的数据才能插入,但希望所有数据都存在于表中。因此,例如,为sold_count('potato',3),('onion',5)和stock_count('potato',8),('carrots',6)做一个插入,I' ð想用这个来结束:
+--------------+------------+-------------+
| produce_type | sold_count | stock_count |
+--------------+------------+-------------+
| potato | 3 | 8 |
| onion | 5 | NULL |
| carrots | NULL | 6 |
+--------------+------------+-------------+
所以我需要加入到现有的在第二列的INSERT语句的数据,但我看到这里或其他地方在网络上是说明从另一个插入时加入表。
INSERT IGNORE不会这样做,因为其中一个“马铃薯”列不会被写入。
INSERT ... ON DUPLICATE KEY UPDATE变得更近,但我无法弄清楚如何将更新字段设置为我插入的数据集的值。
是否需要为第二次插入(+外连接)创建临时表?任何结构更简单的方法呢?
在此先感谢。
编辑:我想我可以probaly使用: https://stackoverflow.com/a/3466/2540707
不完全。第一个插入将创建produce_type和sold_count,然后后面的插入基于外部数据更新stock_count。 – 2014-09-25 18:22:29