X-Original-To: pgsql-sql-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.2]) by svr1.postgresql.org (Postfix) with ESMTP id 4F328D1B83D for ; Tue, 3 Feb 2004 06:28:30 +0000 (GMT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (neptune.hub.org [200.46.204.2]) (amavisd-new, port 10024) with ESMTP id 64149-08 for ; Tue, 3 Feb 2004 02:28:26 -0400 (AST) Received: from smtp01.syd.iprimus.net.au (smtp01.syd.iprimus.net.au [210.50.30.52]) by svr1.postgresql.org (Postfix) with ESMTP id D0B58D1B44D for ; Tue, 3 Feb 2004 02:28:25 -0400 (AST) Received: from iprimus.com.au (211.27.78.47) by smtp01.syd.iprimus.net.au (7.0.024) (authenticated as rjshaw) id 400C4DF400603FD3 for pgsql-sql@postgresql.org; Tue, 3 Feb 2004 17:29:47 +1100 Message-ID: <401F3F7F.7020802@iprimus.com.au> Date: Tue, 03 Feb 2004 17:28:15 +1100 From: Russell Shaw User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040122 Debian/1.6-1 X-Accept-Language: en MIME-Version: 1.0 To: pgsql-sql@postgresql.org Subject: Outer join Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at postgresql.org X-Archive-Number: 200402/26 X-Sequence-Number: 16717 Hi, I'm using postgresql 7.3.4 on debian. I get bad results from a two-table left outer join. First table: select * from descriptions; desc_id | description ---------+------------- 909097 | cap 107890 | resis 223940 | ic 447652 | electro (4 rows) Second table: select * from parts; part_id | desc_id | mounting | man_id ---------+---------+----------+-------- 2 | 107890 | SMD | 7 1 | 909097 | LEADED | 1 3 | 223940 | LEADED | 8 (3 rows) Join: SELECT parts.*, d.description, d.desc_id FROM parts p LEFT OUTER JOIN descriptions d ON p.desc_id=d.desc_id; NOTICE: Adding missing FROM-clause entry for table "parts" part_id | desc_id | mounting | man_id | description | desc_id ---------+---------+----------+--------+-------------+--------- 2 | 107890 | SMD | 7 | resis | 107890 1 | 909097 | LEADED | 1 | resis | 107890 3 | 223940 | LEADED | 8 | resis | 107890 2 | 107890 | SMD | 7 | ic | 223940 1 | 909097 | LEADED | 1 | ic | 223940 3 | 223940 | LEADED | 8 | ic | 223940 2 | 107890 | SMD | 7 | cap | 909097 1 | 909097 | LEADED | 1 | cap | 909097 3 | 223940 | LEADED | 8 | cap | 909097 (9 rows) /\ /\ || || p.desc_id d.desc_id I don't see why there are rows with p.desc_id and d.desc_id different. (I learnt sql last week)