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分钟后关闭:)太好了。谢谢你的更新。知道什么是有效的很好。