"Adam Clauss" <[EMAIL PROTECTED]> wrote:

> I have a table which maintains a list of categories and has a field called
> catID.  This field is a one-to-many relationship with another table.
> What I want to do is remove any "empty" categories - aka: remove any
> categories which aren't used in the second table.
>  
> I thought MySQL at least partially supported nested SELECT queries, but
> either it does not support them in DELETE's or I got the syntax wrong.
> Here's what I was trying to use:
> DELETE FROM Categories WHERE NOT(catID IN (SELECT DISTINCT catID FROM
> items));
>  
> Any easy alternatives here?

In v4.0 you can rewrite as:
        DELETE Categories 
        FROM Categories LEFT JOIN items ON Categories.catID=items.catID
        WHERE items.catID IS NULL.


-- 
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Victoria Reznichenko
 / /|_/ / // /\ \/ /_/ / /__   [EMAIL PROTECTED]
/_/  /_/\_, /___/\___\_\___/   MySQL AB / Ensita.net
       <___/   www.mysql.com





-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to