Re: (FAQ?) JOIN condition - 'WHERE NULL = NULL' - Mailing list pgsql-general

From Craig Ringer
Subject Re: (FAQ?) JOIN condition - 'WHERE NULL = NULL'
Date
Msg-id 47F3C141.8040205@postnewspapers.com.au
Whole thread Raw
In response to (FAQ?) JOIN condition - 'WHERE NULL = NULL'  ("Ian Sillitoe" <ian.sillitoe@googlemail.com>)
Responses Re: (FAQ?) JOIN condition - 'WHERE NULL = NULL'  ("Ian Sillitoe" <ian.sillitoe@googlemail.com>)
List pgsql-general
Ian Sillitoe wrote:
> This is probably a stupid question that has a very quick answer, however it
> would be great if someone could put me out of my misery...
>
> I'm trying to JOIN two tables (well a table and a resultset from a PL/pgsql
> function) where a joining column can be NULL
>
Sounds like you might want something like:

SELECT * FROM tablea INNER JOIN tableb ON (NOT tablea.id IS DISTINCT
FROM tableb.tablea_id_fk);

which can also be written as:

SELECT * FROM tablea, tableb WHERE NOT tablea.id IS DISTINCT FROM
tableb.tableid_id_fk ;

There's been lots of recent discussion of IS DISTINCT FROM, which is why
it comes straight to mind.

If that's not what you meant (by NULL = NULL) then might you be looking
for an OUTER JOIN ?

--
Craig Ringer

pgsql-general by date:

Previous
From: Martijn van Oosterhout
Date:
Subject: Re: (FAQ?) JOIN condition - 'WHERE NULL = NULL'
Next
From: "Ian Sillitoe"
Date:
Subject: Re: (FAQ?) JOIN condition - 'WHERE NULL = NULL'