错误查询:DELETE和LEFT JOIN
问题描述:
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
为什么?
答
您需要指定要从哪个表中删除。
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
答
因为两个表所涉及的过滤,你需要说你想从一个表删除。因此,为了删除programSchedule
表中的行,你可以这样做:
DELETE programSchedule.*
FROM programSchedule
LEFT JOIN program ON programSchedule.pid = program.id
WHERE program.channel_id = 10
注意:如果你想从** **两表删除,你可以先创建一个临时表做到这一点。请张贴您的表格定义。 – 2011-02-18 22:27:12