2012-10-12 229 views
0

我想更新table1,但它給我的錯誤MySQL連接查詢更新

我有3個表加入。這裏是我的sql

update `table1` 
set 
p.`status` = 0 
from table1 t 
left join 
table2 p 
on 
p.id = t.id 
join 
table3 h 
on 
h.id = p.id 
WHERE p.`status`=1 AND h.id <>12"; 
+0

什麼錯誤?你能讓我們知道他們是什麼嗎? – Pitchinnate

+0

語法錯誤或訪問衝突:1064您的SQL語法有錯誤; – Autolycus

+1

'h.id <> 12「;'probably' h.id <>'12';' – Justin

回答

2

錯誤的語法。這被修正:

update `table1` t 
left join 
table2 p 
on 
p.id = t.id 
join 
table3 h 
on 
h.id = p.id 
set p.`status` = 0 
WHERE p.`status`=1 AND h.id <>12"; 
+1

你錯過了table1別名t – CoffeeMonster

1

試試這個:

update `table2` p 
left join `table1` t on 
p.id = t.id join 
table3 h on 
h.id = p.id 
set p.`status` = 0 
WHERE p.`status`=1 AND h.id <>12 

你剛纔說什麼更新table1的,但p.status是表2。或者你有一個錯字,它被認爲是t.status。