Mysql SQL查询问题
我的以下查询失败了,我不明白为什么。显然,代码抱怨的列在表中 查询:Mysql SQL查询问题,mysql,sql,mysql-error-1054,Mysql,Sql,Mysql Error 1054,我的以下查询失败了,我不明白为什么。显然,代码抱怨的列在表中 查询: 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.`ProductI
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'
表格:
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'
错误:
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'
列出CREATE语句的表与查询中引用的表不同。P是产品表,而不是ProductAudit表。
为其列出CREATE语句的表与查询中引用的表不同。P是产品表,而不是ProductAudit表。
在重复密钥更新的
短语中,您只能更新您尝试插入的表。在重复密钥更新的
短语中,您只能更新您尝试插入的表。很高兴能提供帮助。如果这解决了您的问题,我建议您接受答案,以结束问题。为了澄清问题,错误在于:ProductAudit
ChangedOn
=值(ChangedOn
),而不是p.ChangedOn
,在重复的关键部分。但是现在它根本不填充表中的任何内容(即使产品表为空)。回到绘图板:)是的,将在6分钟后关闭:)太好了。谢谢你的更新。知道什么有用很好。很高兴能帮上忙。如果这解决了您的问题,我建议您接受答案,以结束问题。为了澄清问题,错误在于:ProductAudit
ChangedOn
=值(ChangedOn
),而不是p.ChangedOn
,在重复的关键部分。但是现在它根本不填充表中的任何内容(即使产品表为空)。回到绘图板:)是的,将在6分钟后关闭:)太好了。谢谢你的更新。知道什么是有效的很好。