Hi Vikram,

NULL is a special data type and requires special procedures.

Try this:

> mysql> delete from clients where cid = (select clients.cid from clients
> left join branches using (cid) WHERE ISNULL(bid);

Please make NO SPACE betwen ISNULL and  (bid) as otherwise wit will give you 
an syntax error.

Hope that ends the problems you had.

Best regards

Nils Valentin
Tokyo/Japan





2003年 7月 25日 金曜日 12:58、Vikram Vaswani さんは書きました:
> Hi all,
>
> I have the following two tables:
>
> mysql> SELECT * FROM clients;
> +-----+-----------------------------+
>
> | cid | cname                       |
>
> +-----+-----------------------------+
>
> | 101 | JV Real Estate              |
> | 102 | ABC Talent Agency           |
> | 103 | DMW Trading                 |
> | 104 | Rabbit Foods Inc            |
> | 110 | Sharp Eyes Detective Agency |
>
> +-----+-----------------------------+
> 5 rows in set (0.00 sec)
>
> mysql> SELECT * FROM branches;
> +------+-----+--------------------------------+------+
>
> | bid  | cid | bdesc                          | bloc |
>
> +------+-----+--------------------------------+------+
>
> | 1011 | 101 | Corporate HQ                   | CA   |
> | 1012 | 101 | Accounting Department          | NY   |
> | 1013 | 101 | Customer Grievances Department | KA   |
> | 1041 | 104 | Branch Office (East)           | MA   |
> | 1042 | 104 | Branch Office (West)           | CA   |
> | 1101 | 110 | Head Office                    | CA   |
> | 1031 | 103 | N Region HO                    | ME   |
> | 1032 | 103 | NE Region HO                   | CT   |
> | 1033 | 103 | NW Region HO                   | NY   |
>
> +------+-----+--------------------------------+------+
> 9 rows in set (0.01 sec)
>
> I need to delete all clients with no branches. I need to use a subquery to
> do this. Given these constraints, I came up with the following:
>
> mysql> delete from clients where cid = (select clients.cid from clients
> left join branches using (cid) WHERE bid is null);
>
> MySQL says:
>
> ERROR 1093: You can't specify target table 'clients' for update in FROM
> clause
>
> Does any one know why I am getting this error (MySQL 4.1)? Can you help me
> rewrite this operation *using a subquery only*?
>
> TIA,
>
> Vikram

-- 
---
Valentin Nils
Internet Technology

 E-Mail: [EMAIL PROTECTED]
 URL: http://www.knowd.co.jp
 Personal URL: http://www.knowd.co.jp/staff/nils


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

Reply via email to