Re: Joining on a column that might be null

Поиск
Список
Период
Сортировка
От James McMurry
Тема Re: Joining on a column that might be null
Дата
Msg-id 00bf01c0a11d$3b763520$05000100@dorkboxw2k
обсуждение исходный текст
Ответ на Joining on a column that might be null  ("James McMurry" <jmcmurry@pobox.com>)
Список pgsql-novice
Oops, should have pointed out that because this is a simplified version,
I've removed from the select clause some other result columns I want from
the "item" table, as well as from some other tables.  Obviously a join on
these two tables is pointless if there's no common record between them (one
is null), and in the interest of being simple, I made it stupid.

To the table info below, I should have added a "info" column to "item".  If
created_by is null, info won't be null, and vice versa.

And in the select, I want to get the item_id, item_name, and either the
member_name (using created_by) or the info column for each record in "info".

Maybe I should re-read my posts when I've been slaving away with no success
for two hours.  Ugh.

JM

----- Original Message -----
From: "James McMurry" <jmcmurry@pobox.com>
To: <pgsql-novice@postgresql.org>
Sent: Tuesday, February 27, 2001 6:14 PM
Subject: [NOVICE] Joining on a column that might be null


> I'm afraid this will expose me as a true SQL novice.  But this is the
place
> for that, so here goes...
>
> Here's a simplified version of what I want to do.  Anyone know how?  Or
can
> anyone just tell me with authority, "you can't do that!"
>
> I have two tables: "item" and "member".
>
> "item" has these columns:
> item_id integer
> item_name varchar(100)
> created_by integer
>
> "member" has these columns:
> member_id integer
> member_name varchar(100)
>
>
> item.created_by contains entries from member.member_id, and I'd like to
> select records from item with the full member_name:
>
> select a.item_id, a.item_name, b.member_name
> from item a, member b
> where a.created_by = b.member_id
>
>
> The problem I'm having is that created_by can be null.  The above
statement
> won't give me results for those records.  I tried changing the where
> statement to:
>
> where a.created_by = b.member_id or a.created_by is null
>
>
> Of course, this gives me every record in "member" for every record in
"item"
> that has a null "created_by" value.
>
> I've been goofing around with all sorts of things (case, union,
subselects)
> trying to get it to work, but everything I've tried has given me one of
the
> two above results.
>
> I'm not far from giving up and working around it in my code, but before I
> do, I thought I'd share my ignorance and see if anyone can help out.
>
> Thanks!
> jmcmurry@pobox.com
>
>


В списке pgsql-novice по дате отправления:

Предыдущее
От: "James McMurry"
Дата:
Сообщение: Joining on a column that might be null
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Joining on a column that might be null