开发者社区> 问答> 正文

MySQL-基于SELECT查询的UPDATE查询

我需要检查(从同一张表)基于日期时间的两个事件之间是否存在关联。

一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间。

如果第一个事件在第二个事件之前完成,那么我想将它们链接起来。

到目前为止,我有:

SELECT name as name_A, date-time as end_DTS, id as id_A FROM tableA WHERE criteria = 1

SELECT name as name_B, date-time as start_DTS, id as id_B FROM tableA WHERE criteria = 2 然后我加入他们:

SELECT name_A, name_B, id_A, id_B, if(start_DTS > end_DTS,'VALID','') as validation_check FROM tableA LEFT JOIN tableB ON name_A = name_B 然后,可以基于我的validation_check字段运行带有SELECT嵌套的UPDATE查询吗?

展开
收起
保持可爱mmm 2020-05-10 17:51:40 463 0
1 条回答
写回答
取消 提交回答
  • 您实际上可以通过以下两种方式之一执行此操作:

    MySQL更新联接语法:

    UPDATE tableA a INNER JOIN tableB b ON a.name_a = b.name_b SET validation_check = if(start_dts > end_dts, 'VALID', '') -- where clause can go here ANSI SQL语法:

    UPDATE tableA SET validation_check = (SELECT if(start_DTS > end_DTS, 'VALID', '') AS validation_check FROM tableA INNER JOIN tableB ON name_A = name_B WHERE id_A = tableA.id_A) 选择最适合您的那个。来源:stack overflow

    2020-05-10 17:51:54
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像