Peter Landis wrote:
> 
> Hi- I'm a newbie at postgres but have a pretty good
> understanding of SQL statements.  I have created two
> views and wanted to do a LEFT OUTER JOIN of the two
> tables.  The sytax is
> 
> select * from vcompany LEFT OUTER JOIN ON
> vcompany.id=vregistry.id;
> 
> I get the following error:
> LEFT OUTER JOIN not yet implemented
> 
> My question is does postgresql 6.5 support Left out
> join and if not is there another way of implementing
> this sql statement to give me a LEFT OUTER JOIN.
> 
> The logic if very simple.  Look below to see the
> tables:
> 
> vcompany
> +--------+---------------+
> |    id     |      Name  |
> +-------+----------------+
> |     1     |      Peter |
> |     2     |      John  |
> |     3     |      Joe   |
> |     4     |      Jerry |
> |     5     |      Mike  |
> +--------+---------------+
> 
> vcompany
> +--------+-------------+
> |    id     |      Desc|
> +-------+--------------+
> |     1     |      A   |
> |     2     |      B   |
> |     5     |      D   |
> +--------+-------------+

I assume you meant that the above is vregistry?

> 
> JOIN OF THE TWO
> 
> +--------+---------------+-------------+
> |    id  |      Name     |      Desc   |
> +-------+----------------+-------------+
> |   1    |      Peter    |      A      |
> |   2    |      John     |      B      |
> |   3    |      Joe      |             |
> |   4    |      Jerry    |             |
> |   5    |      Mike     |      D      |
> +--------+---------------+-------------+

Unfortunately, PostgreSQL as of version 7.0 does not yet have
left outer join. The traditional way to simulate this behavior is
as follows:

SELECT vcompany.id, vcompany.name, vregistry.desc
FROM vcompany, vregistry
WHERE vcompany.id = vregistry.id
UNION
SELECT vcompany.id, vcompany.name, NULL
FROM vcompany 
WHERE NOT EXISTS 
(SELECT vregistry.id WHERE vregistry.id = vcompany.id)
ORDER BY vcompany.id;

Hope that helps, 

Mike Mascari

Reply via email to