Re: Delete from Join - Mailing list pgsql-general

From Tom Lane
Subject Re: Delete from Join
Date
Msg-id 2938.1215098986@sss.pgh.pa.us
Whole thread Raw
In response to Re: Delete from Join  (Gwyneth Morrison <gwynethm@toadware.ca>)
Responses Re: Delete from Join
List pgsql-general
Gwyneth Morrison <gwynethm@toadware.ca> writes:
> What I am actually trying to get past is:

>     DELETE FROM data_table1
>                 using data_table2 INNER JOIN
>                          data_table1  ON data_table1.fkey =
>  data_table2.pkey;

The equivalent to that in Postgres would be

    DELETE FROM data_table1
      USING data_table2
      WHERE data_table1.fkey = data_table2.pkey;

The fundamental issue here is that MSSQL expects the USING clause to
contain a second reference to the delete target table, whereas PG
does not --- if you write the table name again, that's effectively
a self-join and you probably won't get the behavior you want.

You can use JOIN syntax in USING in Postgres, but only for situations
where the query really involves three or more tables.

            regards, tom lane

pgsql-general by date:

Previous
From: "Scott Marlowe"
Date:
Subject: Re: Connection to second database on server
Next
From: Sam Mason
Date:
Subject: Re: Functional index adding one