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_idI don't see why there are rows with p.desc_id and d.desc_id different. (I learnt sql last week)
---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?
http://archives.postgresql.org
