2013-11-23 49 views
-1

我有以下SELECT語句,它得到writingExericses.text的人沒有一個exchange.introduction轉向select語句爲更新一個

SELECT `courses`.`writingExercises`.`text`, 
`general`.`exchange`.`name` 
FROM `general`.`exchange`, `courses`.`writingExercises` 
WHERE `general`.`exchange`.`introduction` = '' 
AND `general`.`exchange`.`id` = `courses`.`writingExercises`.`userID` 
AND `courses`.`writingExercises`.`lessonID` = 1 

誰,我怎麼可以修改它,因此值它將用戶exchange.introduction設置爲他們的writingExercises.text文件,以供沒有exchange.introduction的用戶使用?

+1

-1。 Google是你的朋友。如果你仍然無法理解如何實現這一點,那麼發佈你已經嘗試過的,以及你沒有做過的事情。 – ApplePie

+0

更新語句也有一個'WHERE'子句,在你的情況下它可能是相同的。您需要提供的其他信息是您希望將更新的行設置爲「SET」。這應該給你一個良好的開端:) –

+1

更新'general'.'exchange','courses'.'writingExercises' SET' general'.'exchange'.'introduction' ='courses'.'writingExercises'.'text'''writingExercises'.'text' WHERE'general'.'exchange'.'introduction' =''AND'general'.'exchange'.'id' ='courses'.'writingExercises'.'userID' AND' courses'.'writingExercises'.'''' lessonID' = 1? – Jake

回答

1

要打開一個select語句到一個更新語句,

UPDATE關鍵字替換SELECT ... FROM

WHERE條款

例如前添加一個SET條款與此select語句開始

SELECT w.text 
    , e.name 
    FROM general.exchange e 
    JOIN courses.writingExercises w 
    ON e.id = w.userID 
WHERE w.lessonID = 1 
    AND e.introduction = '' 

我們會得到一個更新語句是這樣的:從你的問題

UPDATE general.exchange e 
    JOIN courses.writingExercises w 
    ON e.id = w.userID 
    SET e.introduction = w.text  
WHERE w.lessonID = 1 
    AND e.introduction = '' 

(目前還不清楚(我)你是否想改變的值「引言」一欄或在「文本」欄中,上面的例子設置了引言欄的值,如果沒有模式描述和表格定義,很難說......)

但是,如何將一個SELECT語句轉換爲一個多態UPDATE狀態nt在MySQL中。

+0

set子句應該在from子句之前,否? –

+0

@Dan Bracuk:不在MySQL中,不,在UPDATE語句中沒有FROM子句/關鍵字。 'SET'子句(至少在多重更新上)出現在表引用之後,緊接在WHERE子句之前。 – spencer7593