使用SubQuery的MySQL UPDATE查询

托马斯·威廉姆斯

我创建了一个选择查询,该查询向我显示了需要更新的正确行:

SELECT `subject`,`ticket_messages`.`ticket_ID` as t,
(SELECT `date` from `ticket_messages` where `ticket_ID`=t ORDER BY `date` DESC LIMIT 1) as d
 from `ticket_messages`
 LEFT JOIN `tickets` on `ticket_messages`.`ticket_ID`=`tickets`.`ticket_ID`
GROUP BY t 
 HAVING d<date_sub(curdate(), interval 5 day)
 ORDER BY t

我将使用php,但首先要在phpmyadmin中解决查询问题。正确地执行以上查询,并为我提供了正确的行。基本上,它列出了5天以上的所有内容。不用担心我在选择主题和日期,那只是这样,我知道我得到的是正确的行。

问题是如何将其转换为更新查询?我花了几个小时才能完成这项工作。

我将要更新的是:

UPDATE `tickets` SET `status`=?

基本上,它将在ticket_messages中查找并找到最后一条消息。这是我的选择查询执行的操作,如果最后日期超过5天,它将在我的“票证”表中更新状态。这些表是引用链接的。

所以我需要一个带有子查询的Update,并且我不知道要这样做。

好,再增加一点。我试过了

UPDATE `tickets` SET `status`=8
WHERE
(
SELECT `subject`,`ticket_messages`.`ticket_ID` as t,
(SELECT `date` from `ticket_messages` where `ticket_ID`=t ORDER BY `date` DESC LIMIT 1) as d
 from `ticket_messages`
 LEFT JOIN `tickets` on `ticket_messages`.`ticket_ID`=`tickets`.`ticket_ID`
GROUP BY t 
 HAVING d<date_sub(curdate(), interval 5 day)
 ORDER BY t)!=null

我认为where子句如果不等于null会起作用。

丹妮尔

您的第一个查询,我不喜欢,因为我真的不明白您为什么使用subSelect,为什么使用group by。你想约会什么?

无论如何,您说只想要5天以上的车票,

SELECT tm.ticket_ID, MAX(`date`) as d 
FROM `ticket_messages` as tm
GROUP BY tm.ticket_ID
HAVING d < date_sub(curdate(), interval 5 day)

这就是您首先要查询的内容。告诉我您是否获得相同的ID。

现在进行更新,您只需加入:

 UPDATE `tickets`
 INNER JOIN 
(SELECT tm.ticket_ID, MAX(`date`) as d 
  FROM `ticket_messages` as tm
  GROUP BY tm.ticket_ID
  HAVING d < date_sub(curdate(), interval 5 day)) AS T
 ON T.ticket_ID = `tickets`.ticket_ID
 SET`status`=?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用IN和if-subquery的MySQL查询不起作用

来自分类Dev

MySQL UPDATE IF SELECT查询

来自分类Dev

MySQL UPDATE查询例外

来自分类Dev

使用Equijoin的UPDATE查询

来自分类Dev

MySQL查询-在UPDATE内使用SELECT

来自分类Dev

MySQL使用UPDATE和SELECT嵌套查询

来自分类Dev

MySQL查询-在UPDATE内使用SELECT

来自分类Dev

MySQL Update 1查询或多个查询

来自分类Dev

JSON和MySQL UPDATE查询

来自分类Dev

Mysql UPDATE查询中的错误

来自分类Dev

MySQL UPDATE与所需的子查询

来自分类Dev

使用JOIN的SQL UPDATE查询

来自分类Dev

在UPDATE查询中使用JOIN

来自分类Dev

使用Equijoin进行UPDATE查询

来自分类Dev

如何使用InnoDB表加速缓慢的MySQL UPDATE查询

来自分类Dev

MySQL UPDATE查询使用两个表

来自分类Dev

MySQL UPDATE查询中的双引号

来自分类Dev

MySQL Update查询具有多个值

来自分类Dev

节点mysql的正确UPDATE查询语法

来自分类Dev

带子查询的MySQL UPDATE为null

来自分类Dev

子查询中的MySQL Update Thows错误

来自分类Dev

MySQL UPDATE查询-处理空输入

来自分类Dev

不执行MySQL + Hibernate Update查询

来自分类Dev

MySQL UPDATE语句从子查询失败

来自分类Dev

MySQL/PHP UPDATE 查询不起作用

来自分类Dev

多个 mysql UPDATE 与 1 个查询

来自分类Dev

mySQL UPDATE 查询本地文件路径

来自分类Dev

UPDATE MySQL查询错误“子查询返回多于1行”

来自分类Dev

UPDATE MySQL查询错误“子查询返回多于1行”