Mysql 更新条件依赖于其他表的表中的记录

Mysql 更新条件依赖于其他表的表中的记录,mysql,join,Mysql,Join,我在MySQL中有2个表 项目: ProjectID ProjectStatus 1 0 2 0 3 0 4 0 5 0 报价: QuotationID ProjectID QuotationNumber

我在MySQL中有2个表

  • 项目:

  • 
    ProjectID         ProjectStatus
        1                    0
        2                    0
        3                    0
        4                    0
        5                    0
    
  • 报价:

  • 
    QuotationID         ProjectID            QuotationNumber
        1                    1                     X001
        2                    2                     X002
        3                    3                     X003
        4                    1                     X004
        5                    2                     X005
    
我需要一个SQL语法,可以更新或编辑项目表中的项目状态

如果项目在报价表中,则将项目状态更改为1 如果项目不在报价表中,则将项目状态更改为2

因此,在运行该SQL语法后,项目表将如下所示:

  • 项目(查询运行后):
我试过很多问题,但我想不出来

任何人都可以帮忙


感谢您的帮助。

您也可以通过两次更新(可能在事务内部)来完成此操作,并使用内部连接而不是外部连接。哈哈,答案与mine@Kickstart是的,我落后你几秒钟。我有一种感觉,如果我重新振作,我会看到我的是多余的,但见鬼,它发生了。但是,即使在格式上,响应也是如此相似。只是你给表格加了别名,我差点就加了(如果我加了,我可能会用相同的别名)@Kickstart奇怪的是,已经15分钟了,还没有人发布使用
EXISTS
的版本。:)Lol.甚至在和子选择中。甚至是作为任务一部分的相关子选择。
UPDATE Project
LEFT OUTER JOIN Quotation
ON Project.ProjectID = Quotation.ProjectID
SET Project.ProjectStatus = IF(Quotation.ProjectID IS NULL, 2, 1)
UPDATE Project
LEFT OUTER JOIN Quotation
ON Project.ProjectID = Quotation.ProjectID
SET Project.ProjectStatus = IF(Quotation.ProjectID IS NULL, 2, 1)
UPDATE Project p
LEFT JOIN Quotation q
ON p.ProjectID = q.ProjectID
SET ProjectStatus = IF(q.ProjectID IS NULL, 2, 1)