Re: How to delete multiple records - Mailing list pgsql-sql

From Markus Schaber
Subject Re: How to delete multiple records
Date
Msg-id 45090114.5020500@logix-tt.com
Whole thread Raw
In response to How to delete multiple records  (Javanesevn <thanhle@sangtao.net>)
List pgsql-sql
Hi, Javanesevn,

Javanesevn wrote:

> I execute this query on below:
> 
>      delete from PRODUCT
>      where exists (
>           select
>                 product_id, item_id
>           from PRODUCT
>           where
>                research_date < '2006-01-01'
>     )
> this query deleted all records data in PRODUCT table. The subquery
> return only some records.

Yes, that's correct.

You don't have any interconnection between the inner and the outer query.

So, for every outer row, there exists an inner row which has
research_date < '2006-01-01'.

> Tell me about other idea? and What's wrong from this query.

For this simple case, why don't you do:

DELETE FROM PRODUCT WHERE research_date < '2006-01-01'

Or do you want to delete all entries for products that have at least one
entry with a matching research date?

Then go along something like

DELETE FROM product WHERE EXISTS (   SELECT * from product innr       WHERE research_date < '2006-01-01'       AND
product_id= innr.product_id       AND item_id = innr.item_id
 
);


HTH,
Markus

-- 
Markus Schaber | Logical Tracking&Tracing International AG
Dipl. Inf.     | Software Development GIS

Fight against software patents in Europe! www.ffii.org
www.nosoftwarepatents.org


pgsql-sql by date:

Previous
From: Javanesevn
Date:
Subject: How to delete multiple records
Next
From: Reinoud van Leeuwen
Date:
Subject: Re: How to delete multiple records