From: | Pandu Poluan <pandu(at)poluan(dot)info> |
---|---|
To: | Thomas Kellerer <spam_eater(at)gmx(dot)net> |
Cc: | pgsql-novice(at)postgresql(dot)org |
Subject: | Re: SELECT from two tables with different field names? |
Date: | 2011-12-13 03:40:28 |
Message-ID: | CAA2qdGVtQ_ObuEKKXVmShMYRNB0pFZupOzMJbxmRK5r1rjtyDQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
On Dec 12, 2011 3:25 PM, "Thomas Kellerer" <spam_eater(at)gmx(dot)net> wrote:
>
> Pandu Poluan, 12.12.2011 05:39:
>
>> Hello!
>>
>> Due to some legacy apps, I end up with two tables with similar
information, but with zero intersection (i.e., both tables are exclusive of
each other).
>>
>> For illustration:
>>
>> table_one has the fields emp_id and fullname
>>
>> table_two has the fields employee_id, first_name, and last_name
>>
>> Now, I need a query that will search for employee ID in both tables and
return his/her full name.
>>
>> How do I do that? Will a simple UNION suffice?
>
>
> Yes a UNION should do (actually a UNION ALL as it will not try to remove
duplicates which makes the query faster)
>
> select *
> from (
> select emp_id, fullname
> from table_one
>
> union all
>
> select employee_id,
> first_name||' '||last_name
> from table_two
> ) t
> where emp_id = 1
>
Thank you! I can see how UNION ALL will speed the query.
But, shouldn't I put the WHERE clause in the inner SELECTs?
Rgds,
From | Date | Subject | |
---|---|---|---|
Next Message | M. Emre Çolak | 2011-12-13 08:52:29 | getting auto increment id value |
Previous Message | Jorge Perez | 2011-12-13 02:20:15 | tune postgresql on windows |