well i can do the select that way, but i was wondering how the following delete command would only pick up the rows in the select. isn't there a way of imbedding delete in the select statement?
can anyone else help as well please? thanks sunny At 19:46 14/03/02 -0500, Jim Philips wrote: >To select the rows you are looking for, you can use: > >select * from messages >left join topics on topics.topic_id=messages.topic_id >where topics.topic_id is null; > >This works fine for selecting. But for some reason the corresponding SQL >for a delete fails: > >mysql> delete from messages > -> left join topics on topics.topic_id=messages.topic_id > -> where topics.topic_id is null; >ERROR 1064: You have an error in your SQL syntax near 'left join topics >on topics.topic_id=messages.topic_id > >Anybody know how to make the delete statement work? > > > > >On Thu, 2002-03-14 at 15:57, sunny wrote: > > > > How do i do a select first and then delete those rows? sorry.. im just > > confused. i tried that mysql, but it didn't work... gave me an error :( > > > > Any ideas? > > > > thanks! > > > > /sunny > > > > > > > > At 20:54 13/03/02 -0500, you wrote: > > >What you need is a delete with a left join. Something like this: > > > > > >delete from messages > > >left join messages on topics.topic_id=messages.topic_id > > >where topics.topic_id is null; > > > > > >Try it first using a select instead of a delete to be sure it captures > > >the right rows. But this ought to work. > > > > > >On Wed, 2002-03-13 at 17:53, sunny wrote: > > > > Hi everyone, > > > > > > > > I've got a really annoying problem with mysql, and I was hoping someone > > > > could help. > > > > I've got 2 tables in Mysql: > > > > > > > > Table 1 - "Topics" > > > > > > > > | topic_id | name | subject | comment | > > > > --------------------------------------------------------------------- > > > > | 1 | john | weather| the weather today.... blah blah| > > > > > > > > > > > > Table 2 - "Messages" > > > > > > > > |message_id | topic_id | name | subject | comment | > > > > --------------------------------------------------------------------- > > > > | 12 | 1 | billy | yes it ...| i totally > agree....| > > > > > > > > Basically, in the messages table, each row has its own unique id, > but also > > > > a topic_id column which relates to the topic_id in the Topics table. > > > > What I want to do is delete all messages in the message table for > which > > > the > > > > relating topic_id has been already deleted in the Topics table. For > > > > example, if the row with topic_id 5 was deleted in Topics table, I > want to > > > > make sure there are no messages in the Messages table which have a > > > topic_id > > > > of 5. > > > > > > > > Please please, any help would be greatly appreciated. I'm running MySQL > > > > 3.23.46 on UNIX. > > > > > > > > TIA! > > > > > > > > sunny > > > > > > > > > > > > --------------------------------------------------------------------- > > > > 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