Re: [GENERAL] How do you live without OUTER joins? - Mailing list pgsql-general
From | Robert Davis |
---|---|
Subject | Re: [GENERAL] How do you live without OUTER joins? |
Date | |
Msg-id | 388337AB.9E3B84D1@lillysoftware.com Whole thread Raw |
In response to | How do you live without OUTER joins? ("Bruce Bantos" <anon@mgfairfax.rr.com>) |
List | pgsql-general |
Whoops. The "and" should be an "or". select * from company comp, company_category cat where comp.com_cat_abbr = cat.com_cat_abbr or comp.com_cat_abbr not in (select com_cat_addr from company_category); I read the other posts on a different named thread and they seem to indicate a "union" is necessary. I am not sure why though? Robert Davis wrote: > select * from company comp, company_category cat > where comp.com_cat_abbr = cat.com_cat_abbr > and comp.com_cat_abbr not in (select com_cat_addr from company_category); > > If sub selects work as advertised in postgresql > this is the same as the oracle syntax: > > select * from company comp, company_category cat > where comp.com_cat_abbr = cat.com_cat_abbr(+); > > bob > > Bruce Bantos wrote: > > > I know that this may seem like a stale topic. I am not complaining about > > outer joins not being available yet in PostgreSQL. I just want to know how > > you live without them. I am migrating a production system to PostgreSQL and > > I do not know how to duplicate the functionality. > > > > For example, how can I live without outer joins in the example below: > > > > In my current Oracle DB, I have a number of "lookup" tables that contain > > something like this: > > > > TABLE company_category: > > > > com_cat_abbr | com_cat_long > > -------------------------------------------------- > > SB | Small Business > > LB | Large Business > > NP | Not for Profit > > > > etc. > > > > Then in my main table, lets say the "company" table I have: > > > > company_name | com_cat_abbr > > ------------------------------------------------------------ > > Microsoft | LB > > United Way | NP > > Coca Cola | NULL > > > > If I allow nulls in my com_cat_abbr column above, then how could I do a > > simple query to show the company table with the full com_cat_long > > description? These alternatives do not appear attractive: > > > > - Don't allow nulls and force a default value in the com_cat_abbr column > > - Don't do the query - if you want to display it that way handle it in the > > client > > - get rid of the lookup table and store the full text in the company table > > > > I like to have the lookup tables because I use them in the front end client > > to populate pulldowns, they save storage space, they allow some limited > > flexibility in changing the definition for the abbreviation, and they allow > > administrators to be able to see the abbreviation and understand what they > > are looking at. When referential integrity becomes available, I will use > > these lookup tables to enforce integrity. > > > > What are my alternatives? What is everyone else doing in their Postgres > > system? Thanks. > > > > - B > > > > ************ > > -- > rdavis@lillysoftware.com > rsdavis@mediaone.net > http://people.ne.mediaone.net/rsdavis > > ************ -- rdavis@lillysoftware.com rsdavis@mediaone.net http://people.ne.mediaone.net/rsdavis
pgsql-general by date: