有人可以帮我解释语法吗?
insert into history (company,partnumber,price)
values ('blah','IFS0090','0.00')
if company NOT IN ('blah','blah2','blah3','blah4','blah4')
and partnumber='IFS0090';
背景:
我有一个历史表,存储每日公司,产品和价格。但有时一家公司会将自己拆除几天。使问题复杂化的原因是,我只将每日更改保存到仅价格而不是将整个日期列表快照(数据会很大),当我显示公司仍将按照前一天价格计算的数据时。所以我需要做这样的事情,其中0.00的价格意味着它们不再存在。
答案 0 :(得分:1)
使用:
INSERT INTO HISTORY
(company, partnumber, price)
SELECT 'blah', 'IFS0090','0.00'
FROM HISTORY h
WHERE h.company NOT IN ('blah','blah2','blah3','blah4','blah4')
AND h.partnumber = 'IFS0090'
答案 1 :(得分:0)
您在语句中混合了两个完全不同的概念。选择一个:
INSERT INTO ... VALUES (...)
)后者在MySQL中是可能的(即INSERT ... SELECT
syntax),查询看起来像这样:
INSERT INTO history (...)
SELECT ...
FROM liveTable
INNER JOIN moreTables ...
--# this is a regular SELECT statement, as you might have guessed by now
WHERE company NOT IN ('blah','blah2','blah3','blah4','blah4')
AND partnumber='IFS0090';