1
我有以下查询失败,我不明白为什么。显然,代码所抱怨的列在表格中。SQL查询问题
查询:
INSERT
INTO `ProductAudit` (`Id`, `Field`, `OldValue`, `NewValue`, `ChangedOn`)
SELECT t.`ProductId`, 'Title', p.`Title`, t.`Title`, t.`ProcessedOn`
FROM `TempImport` t
LEFT JOIN `Product` p
ON t.`ProductId` = p.`Id`
WHERE p.`Title` != t.`Title`
ON DUPLICATE KEY UPDATE
p.`ChangedOn` = VALUES(`ChangedOn`)
表:
CREATE TABLE `ProductAudit` (
`Id` varchar(32) NOT NULL,
`Field` varchar(16) NOT NULL,
`OldValue` text,
`NewValue` text,
`ChangedOn` date NOT NULL,
PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
错误:
Error Code: 1054 - Unknown column 'p.ChangedOn' in 'field list'
好眼睛,我看到了我的失败点。谢谢! – 2011-05-07 01:24:36
很高兴能有所帮助。如果这解决了你的问题,我会建议接受答案,以结束这个问题。 – IAmTimCorey 2011-05-07 01:27:02
为了澄清故障,在ON DUPLICATE KEY部分中使用'ProductAudit'.'ChangedOn' = VALUES('ChangedOn')而不是p.'ChangedOn'。 **然而,**现在它根本没有填充表中的任何内容(即使产品)表是空的。回到绘图板:) – 2011-05-07 01:32:39