首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL使用REPLACE INTO with多个表

MySQL使用REPLACE INTO with多个表
EN

Stack Overflow用户
提问于 2013-06-19 10:34:30
回答 1查看 276关注 0票数 0

是否可以从一个查询中更新一个表并插入另一个表?还是我在做梦?

我使用了query

代码语言:javascript
运行
复制
REPLACE INTO 
    ASSET_ASSOCIATION, 
    ASSET_HISTORY
JOIN 
     ASSET ON ASSET.ID = ASSET_ASSOCIATION.ASSET_ID
JOIN 
     HD_TICKET ON HD_TICKET.CUSTOM_FIELD_VALUE2 = ASSET.NAME
JOIN 
     HD_TICKET_CHANGE ON HD_TICKET_CHANGE.HD_TICKET_ID = HD_TICKET.ID
JOIN 
     USER U ON U.ID = HD_TICKET.SUBMITTER_ID
SET 
     ASSET_ASSOCIATION. ASSOCIATED_ASSET_ID = ( 
         SELECT 
             A.ID 
         FROM 
             ASSET A 
         WHERE 
             U.FULL_NAME LIKE BINARY CONCAT('%',A.NAME,'%') 
         AND 
             A.ASSET_TYPE_ID = 8 AND A.NAME <> ''),
     ASSET_HISTORY.TYPE_NAME = 'Computer', 
     ASSET_HISTORY.ASSET_ID = ASSET.ID, 
     ASSET_HISTORY.NAME = ASSET.NAME, 
     ASSET_HISTORY.TIME = NOW(), 
     ASSET_HISTORY.CHANGE_TYPE = 'Modification', 
     ASSET_HISTORY.FIELD_NAME = 'FIELD_46', 
     ASSET_HISTORY.VALUE1 = HD_TICKET_CHANGE.USER_ID, 
     ASSET_HISTORY.VALUE2 = HD_TICKET.SUBMITTER_ID, 
     ASSET_HISTORY.FRIENDLY_FIELD_NAME = 'User'
WHERE 
     HD_TICKET_CHANGE.DESCRIPTION LIKE '%Changed ticket Submitter%'
AND 
     ASSET_ASSOCIATION.ASSET_FIELD_ID = 46 
AND 
     ASSET.ASSET_TYPE_ID = 5
AND 
     HD_TICKET.ID = <TICKET_IDS>
ORDER BY 
     HD_TICKET_CHANGE.TIMESTAMP DESC
LIMIT 1

它充满了错误和错误,但这只是给你一个想法..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-19 12:02:23

而是看一看

INSERT INTO ... ON DUPLICATE KEY UPDATE ...

http://dev.mysql.com/doc/refman/5.6/en/insert-on-duplicate.html

不确定这是否允许实际操作两个表,但也许可以通过VIEW实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17182013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档