Re: Eliminating unnecessary left joins
От | Zeugswetter Andreas ADI SD |
---|---|
Тема | Re: Eliminating unnecessary left joins |
Дата | |
Msg-id | E1539E0ED7043848906A8FF995BDA57901E7BE9A@m0143.s-mxs.net обсуждение исходный текст |
Ответ на | Re: Eliminating unnecessary left joins ("Robert Haas" <Robert.Haas@dyntek.com>) |
Ответы |
Re: Eliminating unnecessary left joins
|
Список | pgsql-hackers |
> 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 partnerpp ON p.partner_id = pp.id; 3. wait (or implement :-) the left join optimization in pg Andreas
В списке pgsql-hackers по дате отправления: