我正在阅读有关基于IF语句的重复键上的条件更新 - 例如MySQL Conditional Insert on Duplicate。Mysql - 从条件选择INSERT重复更新
我试图做同样的事情,但是从选择的插件内:
INSERT IGNORE INTO data1 (id, date, quantity)
SELECT id, date, quantity
FROM other_table
WHERE date = '2015-03-01'
AND id=123
ON DUPLICATE KEY UPDATE
quantity = IF(quantity IS NULL, VALUES(quantity), quantity)
然而,这会产生一个错误:
#1052 - Column 'quantity' in field list is ambiguous
我不能完全弄清楚如何告诉MySQL哪个“数量”字段是为了解决歧义问题。为每个表添加别名似乎没有帮助(调用data1'd'会引发不同的错误)。
任何人都有这方面的经验?
在data1和other_table上使用表别名来消除歧义并使用表别名限定其各自的列。 – 2015-04-01 09:08:59
我想你应该使用other_table.quantity – Abhi 2015-04-01 09:09:12