繁体   English   中英

来自两个相互交互的表的MySQL请求

[英]MySQL request from two tables interacting with each other

我拥有的表Table1 user_id, date Table2 user_id, status

我需要类似的东西

UPDATE Table2 
   SET status = 2  
   WHERE user_id in ( {SELECT user_id FROM Table1 WHERE date > 0} )

换句话说,我需要查看表1中的日期是否大于注册日期,然后获取符合此条件的人员的user_id并在表2中使用它们将其状态设置为2。问题是我需要做更多的事情而不是一个用户,因此内部的请求对我不起作用,它仅在结果有一行时起作用。

我认为您编写的内容应该可以使用,但是花括号又如何呢? 只需将其删除即可,如下所示:

UPDATE Table2 
   SET status = 2  
   WHERE user_id in (SELECT user_id FROM Table1 WHERE date > 0)

根据MySQL文档 ,IN应该与子查询一起使用。

必须在比较运算符之后的ANY关键字表示“如果子查询返回的列中的任何值的比较为TRUE,则返回TRUE”。

与子查询一起使用时,单词IN是= ANY的别名。

您是使用PHP还是其他语言进行SQL调用? 如果是这样,可能更容易

  • 首先:从表1中选择用户ID
  • 其次:遍历每一行
  • 第三:执行更新

问候,马克

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM