After spending a good deal of time trying to figure out what was wrong with my query, I finally spotted the problem. After doing some research on Google and trying all sorts of suggested 'solutions', the easiest one was right in front of me.
Here is the query that was causing the error: (names have been changed to protect identity)
DELETE r1_main FROM r1_main as r1, temp1 as b
WHERE r1.id = b.id
AND DATE(b.`timeStamp`) < DATE(init_startDate)
AND DATE(b.`timeStamp`) > DATE(init_endDate);
This statement kept throwing this error in the MySQL procedure:
SQL Error: Unknown table 'r1_main' in MULTI DELETE
Solution:
DELETE r1 FROM r1_main as r1, temp1 as b
WHERE r1.id = b.id
AND DATE(b.`timeStamp`) < DATE(init_startDate)
AND DATE(b.`timeStamp`) > DATE(init_endDate);
Explaination:
I felt a bit silly after figuring out what I was doing wrong, but from the amount of results that Google returned during my search, it don't think I'm the only one who struggled with this.
If you compare the two queries, you will see that the only difference is the table alias in the DELETE clause. Once you've declared an alias for the table name, you cannot use the original table name in the query.
Hope this helps anyone else who runs across this problem.

Fri, 10/15/2010 - 18:21 I still can't get it to work. I have tried 50 iterations of using aliases and non aliases and have searched and looked at other code, but I always get the same two errors, Unknown table 'v' in MULTI DELETE or Unknown column 'poll_id' in 'from clause. These are the two I tried to get the above errors, but I have tried a ton of other things. obviously just not getting the right syntax. DELETE v FROM poll_votes LEFT JOIN polls p USING (poll_id) WHERE p.end < unix_timestamp; DELETE poll_votes.* FROM poll_votes v LEFT JOIN polls p USING (poll_id) WHERE p.end < unix_timestamp;
Thu, 09/09/2010 - 15:34 Thanks Purazar, I was experiencing a very similar issue - I think the MySQL doco, is pretty poor when it comes to examples...who calls a table t1, t2 ?!? Anyone who does should be fired on the spot!
Wed, 07/28/2010 - 19:12 This article as top searhc result on google... best thing of my day ahah Thanks!
Tue, 07/27/2010 - 07:56 Thanks
Thu, 02/11/2010 - 14:06 I had same problem and you help me fixing it. Great explanation. Pure 10.... THX
Thu, 12/17/2009 - 04:33 thank you it helped solve my problem
Thu, 08/06/2009 - 09:01 I'm experiencing such problem while deleting rows from table in one database joining table from other database like this:
DELETE t1 FROM db1.table1 as t1 INNER JOIN db2.table2 as t2 ON t1.field=t2.fieldDo you know the solution?Wed, 07/29/2009 - 22:31 Thank you for pointing this out! You've saved me a lot of time! The documentation isn't very clear at all about not being able to include the full table name.
Mon, 03/09/2009 - 20:09
Working with existing code, the orioginal statement you have there works with MySQL 4.0. Migrating to MySQL 5.1 I had this bug and didn't know whats up.
I figured it out though right before I started reading your post there :). Nevertheless, I also feel really dumb.
--
Hatem
PS. In my defense I was working with someone else's code :-)