> I have this exact problem a lot. There are actually cases > where you can eliminate regular joins, not just left joins. > For example: > > CREATE TABLE partner ( > id serial, > name varchar(40) not null, > primary key (id) > ); > > CREATE TABLE project ( > id serial, > name varchar(40) not null, > partner_id integer not null references project (id) ^^^^^^^ -- I assume typo, should be partner > ); > > CREATE VIEW project_view AS > SELECT p.id, p.name, p.partner_id, pp.name AS partner FROM > project p, partner pp WHERE p.partner_id = pp.id;
Same advice to you: 1. add not null to your id's 2. CREATE VIEW project_view AS SELECT p.id, p.name, p.partner_id, pp.name AS partner FROM project p left outer join partner pp ON p.partner_id = pp.id; 3. wait (or implement :-) the left join optimization in pg Andreas ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate