Antw: Problems with joining two tables

Gerhard Dieringer <dieringg@eba-haus.de>

From: "Gerhard Dieringer" <DieringG@eba-haus.de>
To: <pgsql-sql@postgresql.org>, <Michael.Rudolph@telekom.de>
Date: 2000-04-20T07:05:44Z
Lists: pgsql-sql
Michael Rudolph wrote:

> I have two tables, the first one has one column as a reference to the index of the second. Not every row in the first table has a reference to the second table. > I now want to make a query to get all information of the first table and, if there is a reference, the corresponding information of the second table in that row. In > another programming language I would just make an if-clause but how can I do this in SQL?

What you need is an outer join but as PostgreSQL doesn't support outer joins now (7.0.0), you can simulate it with a union as explained in Bruce Momjian book:

SELECT name, order_id
FROM customer, salesorder
WHERE customer.customer_id = salesorder.customer_id
UNION ALL
SELECT name, NULL
FROM customer
WHERE customer.customer_id NOT IN (SELECT customer_id FROM salesorder)
ORDER BY name

I hope this will help you.

Gerhard