From: | Sascha Ziemann <szi(at)khs-ag(dot)de> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | operator *= |
Date: | 1999-12-09 13:09:18 |
Message-ID: | m3emcw9s75.fsf@intra.do.khs-ag.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hi,
I have two tables "user_t" and "email_alias_t". The "user_t" table
has the two fields "last_name" and "linux_login" and the
"email_alias_t" table has the two fields "login" and "alias".
In some rows in the "user_t" table the entry "linux_login" is NULL.
Now I need all rows from "user_t" and for those rows which have a
"linux_login" I need the "alias" column from "email_alias_t".
My SQL book descibes the *= operator which should be used for those
queries but Postgres does not have it. I found out that it is
possible to do the select with a union. This union:
select last_name, direct_inward_number, linux_login, alias
from user_t, email_alias_t
where last_name LIKE 'Ni%' AND linux_login = login
union
select last_name, direct_inward_number, linux_login, linux_login
from user_t
where last_name LIKE 'Ni%' AND linux_login = NULL
order by 1;
produces the right output:
last_name|direct_inward_number|linux_login|alias
---------+--------------------+-----------+-----------------
Niebisch | 2608|jni00514 |niebisch.jaroslaw
Nienaß | 1365| |
Nilles | 2478|pni00423 |nilles.peter
Nix | 2358|yni00155 |nix.yvonne
My question: Is such a union the only way to emulate the *= operator
in Postgres or is there a better way?
bis später...
Sascha
From | Date | Subject | |
---|---|---|---|
Next Message | Adriaan Joubert | 1999-12-09 13:22:56 | Re: [GENERAL] get the previous assigned sequence value |
Previous Message | Stuart Rison | 1999-12-09 12:49:24 | Re: [GENERAL] get the previous assigned sequence value |