2011-09-23 145 views
-3

我在這個查詢語法錯誤,但我不知道我做錯了什麼。SQL查詢語法錯誤

UPDATE `jos_planning2_rosters` r 
LEFT JOIN jos_planning2_rosters_setup s ON r.id = s.roster_id 
LEFT JOIN jos_planning2_workplaces w ON s.workplace_id = w.id 
WHERE r.roster_state =1 
AND s.card_id IS NULL 
AND s.type_id = '2' 
AND r.roster_date >= DATE(NOW()) SET s.card_id = '1', s.type_id = '1' 
WHERE s.type_id = '2', s.card_id IS NULL, r.id = '8'; 
+2

,我們不知道該錯誤信息是什麼... –

+0

嘗試更換UPDATE'jos_planning2_rosters'與更新「jos_planning2_rosters」( ' - >') – fceruti

+0

這是tsql嗎?您可以爲更新的表設置別名。但沒有一個conrete錯誤信息,它只是猜測 – Jan

回答

1

你們是不是要做到這一點,查詢是一個爛攤子:

UPDATE s 
SET s.card_id = '1', 
     s.type_id = '1' 
From jos_planning2_rosters_setup s 
     INNER JOIN jos_planning2_rosters r ON r.id = s.roster_id 
WHERE r.roster_state = 1 
     AND s.card_id IS NULL 
     AND s.type_id = '2' 
     AND r.roster_date >= GetDate() 
     AND r.id = '8'; 
0

嘗試一下沒有那些反引號jos_planning2_rosters

+0

都能跟得上沒有工作:( – Fabian

+0

@Fabian,我覺得OP是正確的,你有兩個WHERE語句,這是不好的。 – Dave

+0

UPDATE'jos_planning2_rosters' [R \t \t LEFT JOIN jos_planning2_rosters_setup S於r.id = s.roster_id \t \t LEFT JOIN jos_planning2_workplaces瓦特ON s.workplace_id = w.id \t \t SET s.card_id = '1',s.type_id = 1 WHERE \t \t s.type_id = 2,s.card_id IS NULL,R。 id ='8';這是我的新查詢,但仍然不起作用 – Fabian

2

在查詢中有兩個WHERE子句。