Re: delete with self join - Mailing list pgsql-general

From garry saddington
Subject Re: delete with self join
Date
Msg-id 1176802428.7783.21.camel@localhost
Whole thread Raw
In response to Re: delete with self join  (Richard Huxton <dev@archonet.com>)
List pgsql-general
On Tue, 2007-04-17 at 10:15 +0100, Richard Huxton wrote:
> garry saddington wrote:
> > On Tue, 2007-04-17 at 09:21 +0100, Richard Huxton wrote:
> >> garry saddington wrote:
> >>> I am trying this syntax which is my interpretation of the docs:
> >>>
> >>>      delete from siblings s1 using siblings s2
> >>>         WHERE  s1.principal = s2.principal
> >>>               and s1.sibling=175
> >>>
> >>> Can anyone tell me where I am going wrong?
> >> 1. What's happening - are you getting an error?
> > I am getting a syntax error (via psycopg) at or near s1 - perhaps this is a psycopg problem?
> >> 2. What is the query supposed to do? I can't see why you're not just doing:
> >> DELETE FROM siblings WHERE sibling=175;
> >>
> >
> > I am keeping a record of siblings in a school. The user chooses one
> > student and there siblings such that id's are entered into a table as
> > such:
> > TABLE SIBLINGS:
> >
> > principal  sibling
> >   809         234
> >   809         785
> >   809         345
> >   809         809
>
> > What I am trying to do is to allow the user to correct input mistakes by
> > deleting all the siblings of one family at the same time by choosing
> > just one of the siblings. I hope this clears things up.
>
> Ah, OK. The error then is that you're testing against s1.sibling not
> s2.sibling. "delete from siblings s1 ... and s1.sibling=175" which means
> you're not using s2 at all.
>
> You might find it clearer with a subquery:
> DELETE FROM siblings WHERE principal = (
>     SELECT principal FROM siblings WHERE sibling=234
> );
Thanks, can't think why I went the complicated route!
Regards
Garry


pgsql-general by date:

Previous
From: Richard Huxton
Date:
Subject: Re: delete with self join
Next
From: "Ashish Karalkar"
Date:
Subject: seeking PITR archive_command advice