2013-06-19 68 views
1

與MySQL我可以使用帶where子句如何選擇並更新查詢涉及到兩個表

INSERT INTO Targeted (field1,field2) SELECT field1,field2 FROM Table WHERE id=$id 

select語句插入表,現在我要做的更新與選擇太...這裏是如何我的表看起來像

tagged    tags 
---------   ------------- 
fid tid   id amount 
1  2    1 0 
1  1    2 0 
2  2    3 0 
3  3    4 0 
3  4    

如何選擇從標有特定的表FID WHERE子句像標籤

Input 
fid = 1 

Desired output 
update tags with 1 amount=amount+1 
update tags with 2 amount=amount+1 
與返回的結果FID = 1然後更新表標籤

我經歷過一些研究,SO question這裏是我的查詢看起來怎麼樣但它不給任何錯誤或變化太大

UPDATE 
    tags 
SET 
    tags.amount = tags.amount+1 
FROM 
    tags 
INNER JOIN  
    tagged 
ON  
    tags.id = tagged.tid 
WHERE 
    tagged.fid = 1 

回答

1

你有你的UPDATE語法錯誤。在MySql表中引用先去後SET子句。

嘗試

UPDATE tags t JOIN tagged d 
    ON t.id = d.tid 
    SET t.amount = t.amount + 1 
WHERE d.fid = 1 

更新後tags表看起來像

 
| ID | AMOUNT | 
--------------- 
| 1 |  1 | 
| 2 |  1 | 
| 3 |  0 | 
| 4 |  0 | 

這裏是SQLFiddle演示

+0

工作,並注意到!感謝您的知識! –

+0

@LeonArmstrong我很高興我可以幫助:) – peterm