我通常非常機智,但我被困在這一個。任何幫助,將不勝感激。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