2011-09-23 147 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子句。