更新表中条件取决于其他表的记录

时间:2013-07-02 09:23:29

标签: mysql join

我在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
    

我需要一个可以在表Project

中更新或编辑ProjectStatus的SQL语法

如果项目在引号表中,则将ProjectStatus更改为1 如果项目不在引用表中,则将ProjectStatus更改为2

因此,在我使用SQL语法之后,Project表将变为这样:

  • 项目(查询运行后):
    
    ProjectID         ProjectStatus
        1                    1
        2                    1
        3                    1
        4                    2
        5                    2
    

我尝试了很多查询,但我无法弄明白。

任何人都可以帮忙。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

UPDATE Project
LEFT OUTER JOIN Quotation
ON Project.ProjectID = Quotation.ProjectID
SET Project.ProjectStatus = IF(Quotation.ProjectID IS NULL, 2, 1)

答案 1 :(得分:1)

UPDATE Project p
LEFT JOIN Quotation q
ON p.ProjectID = q.ProjectID
SET ProjectStatus = IF(q.ProjectID IS NULL, 2, 1)