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

Je reçois cette erreur:Erreur de requête: SUPPRIMER et 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

Pourquoi?

Répondre

8

Vous devez spécifier la table à supprimer.

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

Note: Changer le joint à un INNER JOIN puisque vous filtrez par program.channel_id

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

Note: Si vous souhaitez supprimer ** ** les deux tables, vous pouvez le faire en créant d'abord une table temporaire. S'il vous plaît poster vos définitions de table. –

2

Parce que deux tables sont en jeu, vous devez dire quelle table vous souhaitez supprimer. Ainsi, afin de supprimer les lignes de la table programSchedule, vous pouvez le faire:

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