gpt4 book ai didi

MySQL - 基于 SELECT Query 的 UPDATE 查询

转载 作者:IT老高 更新时间:2023-10-28 12:47:32 24 4
gpt4 key购买 nike

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

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

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

到目前为止我所拥有的是:

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 查询吗?

最佳答案

实际上,您可以通过以下两种方式之一:

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)

选择对你来说最自然的一个。

关于MySQL - 基于 SELECT Query 的 UPDATE 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1262786/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com