MySQL - UPDATE query based on SELECT Query(MySQL - 基于 SELECT Query 的 UPDATE 查询)
问题描述
我需要根据日期时间检查(从同一张表中)两个事件之间是否存在关联.
I need to check (from the same table) if there is an association between two events based on date-time.
一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间.
One set of data will contain the ending date-time of certain events and the other set of data will contain the starting date-time for other events.
如果第一个事件在第二个事件之前完成,那么我想将它们链接起来.
If the first event completes before the second event then I would like to link them up.
到目前为止我所拥有的是:
What I have so far is:
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 查询吗?
Can I then, based on my validation_check field, run a UPDATE query with the SELECT nested?
推荐答案
您实际上可以通过以下两种方式之一:
You can actually do this one of two ways:
MySQL 更新连接语法:
MySQL update join syntax:
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 语法:
ANSI SQL syntax:
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)
选择对你来说最自然的一个.
Pick whichever one seems most natural to you.
这篇关于MySQL - 基于 SELECT Query 的 UPDATE 查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:MySQL - 基于 SELECT Query 的 UPDATE 查询
基础教程推荐
- SQL Server 2016更改对象所有者 2022-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01