Re: [GENERAL] Simulating an outer join
| От | Julian Scarfe |
|---|---|
| Тема | Re: [GENERAL] Simulating an outer join |
| Дата | |
| Msg-id | 387D0B3B.7D7F3AD8@callnetuk.com обсуждение исходный текст |
| Ответ на | Simulating an outer join (Bruce Momjian <pgman@candle.pha.pa.us>) |
| Ответы |
Re: [GENERAL] Simulating an outer join
|
| Список | pgsql-general |
> Bruce Momjian wrote: > > > > I have been thinking about how to simulate an outer join. It seems the > > best way is to do: > > > > SELECT tab1.col1, tab2.col3 > > FROM tab1, tab2 > > WHERE tab1.col1 = tab2.col2 > > UNION ALL > > SELECT tab1.col1, NULL > > FROM tab1 > > WHERE tab1.col1 NOT IN (SELECT tab2.col2 FROM tab2) > > > > Comments? I know someone was asking about this recently. Mike Mascari wrote: > > I wouldn't use IN ;-) > > SELECT table1.key, table2.value > FROM table1, table2 > WHERE table1.key = table2.key > UNION ALL > SELECT table1.key, NULL > FROM table1 WHERE NOT EXISTS > (SELECT table2.key FROM table2 WHERE table1.key = table2.key); FWIW, that's exactly Joe Celko's SQL-89 workaround for OUTER JOINs in 'SQL for Smarties'. Well in fact he uses (SELECT * FROM table2 WHERE table1.key = table2.key) as the subquery, but I presume that's an insignificant difference. Julian Scarfe
В списке pgsql-general по дате отправления: