将mssql脚本转换为表中的mysql更新列,并在其他表中显示最新日期

时间:2019-02-13 08:14:37

标签: mysql sql-server

您好,我有一个包含合同的表,另一个有包含对这些合同所做的所有更改的表。 现在,我需要使用modifydate列更新所有合同。这应该是合同上的最新更改。 在更改表中有日期,因此我需要获取每个合同的最新现有日期。 我已经设法在mssql中执行脚本,但是在mysql中却无法正确执行。 也许有人可以帮助我。

Mssql

update Contract SET
    Contract.ModifiedBySystemUserId =
        (select top 1 eh2.SystemUserId FROM EntityHistory eh2  WHERE eh2.EntityId = eh.EntityId
        and eh2.EntityType = 5 ORDER BY eh2.EventDate DESC)
from 
    Contract c
    INNER JOIN EntityHistory eh on eh.EntityType = 5 and c.contractId = eh.EntityId

1 个答案:

答案 0 :(得分:2)

请使用以下查询:

 update Contract c
  INNER JOIN EntityHistory eh on eh.EntityType = 5 and c.contractId = eh.EntityId
  SET Contract.ModifiedBySystemUserId = (select eh2.SystemUserId 
                                        FROM EntityHistory eh2  
                                        WHERE eh2.EntityId = eh.EntityId and eh2.EntityType = 5 
                                        ORDER BY eh2.EventDate DESC LIMIT 1)