Thread: LEFT JOIN on one and/or another column

LEFT JOIN on one and/or another column

From
"Octavio Alvarez"
Date:
Hi. I have a table with two foreign keys (1 field each), like in
id                | serialext_key_original  | integerext_key_exception | integer

They mean different things, as one refers to a typical value, and the
other one refers to an exception that applies for that tuple.

Each key references a different table, one with typical data, and one with
exception data.

I'd like to join on the original, except when exception <> NULL, but I
can't quite figure out how to do so.

Can anyone help?

Thanks you. :-)

Octavio.

-- 
Octavio Alvarez.
E-mail: alvarezp@alvarezp.ods.org.

Agradezco que sus correos sean enviados siempre a esta dirección.


Re: LEFT JOIN on one and/or another column

From
Bruno Wolff III
Date:
On Wed, Jan 28, 2004 at 20:27:00 -0800, Octavio Alvarez <alvarezp@alvarezp.ods.org> wrote:
> 
> Hi. I have a table with two foreign keys (1 field each), like in
> 
>  id                | serial
>  ext_key_original  | integer
>  ext_key_exception | integer
> 
> They mean different things, as one refers to a typical value, and the
> other one refers to an exception that applies for that tuple.
> 
> Each key references a different table, one with typical data, and one with
> exception data.
> 
> I'd like to join on the original, except when exception <> NULL, but I
> can't quite figure out how to do so.

I am not completely sure from your description what exactly you are trying
to do, but it sounds like you can left join your table to the two foreign
key tables and then use coallesce to grab the value from the appropiate
joined table.


Re: LEFT JOIN on one and/or another column (thanks)

From
"Octavio Alvarez"
Date:
Yes, Bruno. Thank you very much. That's what I was looking for, but since
I hadn't used CASE nor COALESCE, I didn't know it was easier that way.

The idea is that on a column I have info about a routine task, and in
another one I have info about human-made changes to the time of that task,
like assigning a different task, or moving it to another moment, and the
query I'm trying to make should answer what tasks should be done now.

Thank you.

Bruno Wolff III said:
> On Wed, Jan 28, 2004 at 20:27:00 -0800,
>   Octavio Alvarez <alvarezp@alvarezp.ods.org> wrote:
>>
>> Hi. I have a table with two foreign keys (1 field each), like in
>>
>>  id                | serial
>>  ext_key_original  | integer
>>  ext_key_exception | integer
>>
>> I'd like to join on the original, except when exception <> NULL, but I
>> can't quite figure out how to do so.
>
> I am not completely sure from your description what exactly you are trying
> to do, but it sounds like you can left join your table to the two foreign
> key tables and then use coallesce to grab the value from the appropiate
> joined table.

-- 
Octavio Alvarez.
E-mail: alvarezp@alvarezp.ods.org.

Agradezco que sus correos sean enviados siempre a esta dirección.