Hi sunny, Yes it is a sad scenario. But hopefully this feature would be available in the near future.
If you cannot use a programming language the only way AFAIK is to use temporary tables. Create temporary table temptable SELECT messages.*, if(main.topicid is null,1,0) deleteflag FROM messages LEFT OUTER JOIN main ON messages.topicid=main.topicid WHERE main.topicid is null; You have now the complete data of the original table but with an extra column deleteflag with either 1 or 0 as its value. Now you can delete the rows of temptable by issuing the command Delete from temptable where deleteflag = 1; Alter table temptable drop deleteflag; Delete from messages; Insert into messages select * from temptable; drop table temptable; This is like taking food through nostrills but one without a mouth has no better alternative Regards. Anvar. At 12:17 AM 30/03/2002 +0000, you wrote: >So you're saying there's no actual DELETE statement for this? There is no >way in hell I can write any SQL to do that?? Thats sucks....... :( > >Thanks for the example, but how do I run it? I've only used PHP for taking >information out of a database and other simple MySQL queries so while your >Perl example kinda makes sense, I don't understand how to work it. Do I >just put that in a file and run open the file in a browser? > >Thanks! > >sunny > > > >At 08:12 29/03/02 -0700, Rodney Broom wrote: >>Good morning Sunny, >> >> >>From: sunny <[EMAIL PROTECTED]> >> >> > ...substituting SELECT with DELETE doesn't work :( >> >>That's right, that's how MySQL works. And it doesn't support sub-queries >>for this case, either. So you can't say: >> >> delete from table where field in (select field from other_table) >> >>I'd suggest doing this from another language, like Perl. For instance: >> >> $list_list = $dbh->selectall_arrayref(qq{ >> SELECT messages.topicid >> FROM messages >> LEFT OUTER JOIN main >> ON messages.topicid=main.topicid >> WHERE main.topicid is null >> }); >> >> for my $row ( @{$list_list} ) { >> $dbh->do(qq{DELETE FROM messages WHERE topicid = $row->[0]}); >> } >> >> >>Note, my example is rough, and not tuned for performance. But you get the >>idea. Hollar if you still need a hand with this. >> >> >> >>--- >>Rodney Broom >>Programmer: Desert.Net >> >> >> >> >>--------------------------------------------------------------------- >>Before posting, please check: >> http://www.mysql.com/manual.php (the manual) >> http://lists.mysql.com/ (the list archive) >> >>To request this thread, e-mail <[EMAIL PROTECTED]> >>To unsubscribe, e-mail >><[EMAIL PROTECTED]> >>Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > > >--------------------------------------------------------------------- >Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > >To request this thread, e-mail <[EMAIL PROTECTED]> >To unsubscribe, e-mail ><[EMAIL PROTECTED]> >Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php