2011-02-18 112 views
5
DELETE FROM programSchedule 
LEFT JOIN program ON programSchedule.pid = program.id 
WHERE program.channel_id = 10 

我得到這個錯誤:錯誤查詢:DELETE和LEFT JOIN

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LEFT JOIN program ON programSchedule.pid = program.id' at line 1

爲什麼?

回答

8

您需要指定要從哪個表中刪除。

DELETE programSchedule.* 
FROM programSchedule LEFT JOIN program ON programSchedule.pid = program.id 
WHERE program.channel_id = 10 

注:更改連接到INNER JOIN因爲你是program.channel_id

DELETE programSchedule.* 
FROM programSchedule INNER JOIN program ON programSchedule.pid = program.id 
WHERE program.channel_id = 10 
+0

注意:如果你想從** **兩表刪除,你可以先創建一個臨時表做到這一點。請張貼您的表格定義。 – 2011-02-18 22:27:12

2

因爲兩個表所涉及的過濾,你需要說你想從一個表刪除。因此,爲了刪除programSchedule表中的行,你可以這樣做:

DELETE programSchedule.* 
FROM programSchedule 
LEFT JOIN program ON programSchedule.pid = program.id 
WHERE program.channel_id = 10