| From: | Masaru Sugawara <rk73(at)sea(dot)plala(dot)or(dot)jp> |
|---|---|
| To: | <willrich(at)iese(dot)fhg(dot)de> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: Problem how to combine to two tables |
| Date: | 2002-03-27 15:47:12 |
| Message-ID: | 20020328000758.470E.RK73@sea.plala.or.jp |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
On Wed, 27 Mar 2002 13:23:29 +0100
"Torsten Willrich" <willrich(at)iese(dot)fhg(dot)de> wrote:
> This means, that if the two tables are linked properly, that Torsten and
> Daniel sit in room no. 201 and Markus in room No. 202. And linking properly
> is my problem:
>
> I want an output like this
>
> Employee_ID Room ID Employee
> {1,3} 201 1 Torsten
> {1,3} 201 3 Daniel
> {2} 202 2 Markus
>
> That means, that the SELECT-statement has to be something like this:
> SELECT * from Table1,Table2 where Table1.Employee_ID=Table2.ID;
Not smart, but probably feasible to link.
SELECT
t1.e_id AS "Employee_ID",
t1.room AS "Room",
t1.id AS "ID",
t2.employee AS "Employee"
FROM
table2 AS t2,
(SELECT '{'|| employee_id[1] || '}' AS e_id,
employee_id[1] AS id,
room
FROM table1
WHERE employee_id[2] IS NULL
UNION
SELECT '{'|| employee_id[1] || ',' || employee_id[2] || '}' AS e_id,
employee_id[1] AS id,
room
FROM table1
WHERE employee_id[2] IS NOT NULL
UNION
SELECT '{'|| employee_id[1] || ',' || employee_id[2] || '}' AS e_id,
employee_id[2] AS id,
room
FROM table1
WHERE employee_id[2] IS NOT NULL
) AS t1
WHERE
t2.id = t1.id
ORDER BY
t1.room, t1.id
;
Regards,
Masaru Sugawara
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2002-03-27 15:51:30 | Re: Non-use of index ? |
| Previous Message | Andrew G. Hammond | 2002-03-27 15:23:14 | Re: Problem how to combine to two tables |