2012-03-07 73 views
2

我已經吸了SQL查詢我有2個表和2行1表是user_sets和第二個是user_profiles我需要更新user_sets行基於行user_profiles表。 我會舉一個例子。更新行的基礎上其他錶行

DB結構

table User_sets 
row n_color_pack 
------------- 
table User_profiles 
row gander 
--------------------- 

查詢:

UPDATE user_sets 
    SET n_color_pack = 1 
    FROM user_profiles, 
     user_sets 
    WHERE gander = '0'; 

所以你看,我想通過n_color_pack 1設置爲大家更新User_sets表誰擁有性別0

回答

2

你將需要JOIN的表格來實現這一點。像這樣的東西應該工作(未經測試):

UPDATE user_sets as s 
    INNER JOIN user_profiles as p 
    ON s.id = p.id 
    SET s.n_color_pack = 1  
    WHERE p.gander = 0 

變化s.idp.id取決於其列在你的情況下,兩個表連接。

(感謝ruakh指出我的語法錯誤)

+0

@ruakh:確實是這樣。我只是在自己調查。感謝您指出。我修復了它。 – xbonez 2012-03-07 04:49:54

+0

謝謝,+1。但我認爲你應該鏈接到文檔。 :-) – ruakh 2012-03-07 04:50:56

+0

是的,謝謝。 – vsuhov 2012-03-07 09:52:49