2013-07-02 34 views
0

表我有2個表在MySQL更新記錄在該條件取決於其它表

  • 項目:

    
    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可以更新或編輯表格中的ProjectStatus的語法項目

,如果該項目是在報價表中然後改變ProjectStatus 1 如果該項目沒有在報價表然後更改ProjectStatus 2

所以之後我的侏儒是SQL語法項目表會變成這個樣子:

  • 項目(查詢運行後):
    
    ProjectID   ProjectStatus 
        1     1 
        2     1 
        3     1 
        4     2 
        5     2 
    

我試過很多疑問,但我不能弄明白。

任何人都可以幫忙。

謝謝你的幫助。

+0

你也可以這樣做,因爲兩個更新(可能是一個事務中) - 並使用內部聯接,而不是一個外。 – Strawberry

回答

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

非常感謝你.....它的工作......謝謝 – Teddy

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

哈哈,和我的回答幾乎完全一樣 – Kickstart

+0

@Kickstart是的,我落後了你幾秒。我有一種感覺,如果我刷新我會看到,我的是多餘的,但是什麼... – Barmar

+0

它發生。但即使格式化,響應也非常相似。只是你把別名放到了別名上,我幾乎是這樣做的(如果我這樣做的話,我可能會使用相同的別名) – Kickstart