我需要检查(从同一个表)基于日期时间的两个事件之间是否存在关联 .
一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间 .
如果第一个事件在第二个事件之前完成,那么我想将它们链接起来 .
到目前为止我所拥有的是:
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查询吗?
12 回答
同桌,
请查看以下查询 .
update tableA A inner join tableB B on A.name_a = B.name_b set validation_check = if(start_dts > end_dts, 'VALID', '')
希望这对你有用 .
希望在您必须在两个表之间进行匹配和更新的情况下,这将帮助您 .
您可以使用内部联接更新另一个表中的值
按照此处了解如何使用此查询http://www.voidtricks.com/mysql-inner-join-update/
或者您可以使用select as子查询来执行此操作
查询详细解释http://www.voidtricks.com/mysql-update-from-select/
您可以使用:
如果有人正在寻求将数据从一个数据库更新到另一个数据库而不管他们所针对哪个表,那么必须有一些标准来实现它 .
对于所有级别,这个更好,更干净:
Traaa!它很棒!
通过上述理解,您可以修改设置字段和“开启”条件来完成您的工作 . 您还可以执行检查,然后将数据拉入临时表,然后使用上述语法替换表和列名来运行更新 .
希望它有效,如果不让我知道 . 我会为你写一个确切的查询 .
在MySQL中很容易:
我在一个表本身有重复条目的问题 . 以下是我的工作方法 . @sibaz也提倡它 .
最后我使用以下查询解决了它:
我对SQL不太熟悉,请告知任何你知道的更好的方法 .
以上查询适用于MySql服务器 .
我在寻找一个非常复杂的连接的自己的解决方案时发现了这个问题 . 这是一个替代解决方案,对于更复杂的问题版本,我认为这可能是有用的 .
我需要在活动表中填充product_id字段,其中活动以单元编号,单元在一个级别中编号(使用字符串?? N标识),以便可以使用SKU(即L1U1A1)识别活动 . 然后将这些SKU存储在不同的表中 .
我确定了以下内容以获取activity_id与product_id的列表: -
我发现这太复杂了,无法合并到mysql中的SELECT中,所以我创建了一个临时表,并使用update语句加入:
我希望有人觉得这很有用
您实际上可以通过以下两种方式之一来完成
MySQL更新连接语法:
ANSI SQL语法:
挑选一个对你来说最自然的东西 .