Re: Join question - Mailing list pgsql-sql
From | Edward W. Rouse |
---|---|
Subject | Re: Join question |
Date | |
Msg-id | 070d01c90225$ef1dc180$cd594480$@com Whole thread Raw |
In response to | Re: Join question (Lennin Caro <lennin.caro@yahoo.com>) |
Responses |
Re: Join question
|
List | pgsql-sql |
I was trying to do something like this, but couldn't get it to work. I am trying to follow the example you provided, butdon't understand how id and oid relate to the example tables and which table is pr1 and pr2. Also my data has to match2 constraints, not 1 (though I'm guessing that I could just add the other without changing anything else). And you havepr2.dato in the inner select but not the outer one. Is there a reason for that. As of now I am thinking I will have to break this up into more than one statement. Edward W. Rouse -----Original Message----- From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org] On Behalf Of Lennin Caro Sent: Tuesday, August 19, 2008 11:59 AM To: 'Daniel Hernandez'; pgsql-sql@postgresql.org; Edward W. Rouse Subject: Re: [SQL] Join question --- On Tue, 8/19/08, Edward W. Rouse <erouse@comsquared.com> wrote: > From: Edward W. Rouse <erouse@comsquared.com> > Subject: Re: [SQL] Join question > To: "'Daniel Hernandez'" <breydan@excite.com>, pgsql-sql@postgresql.org > Date: Tuesday, August 19, 2008, 1:35 PM > I have tried left, right outer and inner. > > > > Edward W. Rouse > > > > From: Daniel Hernandez [mailto:breydan@excite.com] > Sent: Monday, August 18, 2008 12:30 PM > To: pgsql-sql@postgresql.org; erouse@comsquared.com > Subject: Re: [SQL] Join question > > > > have you tried a right Join? > > > Daniel Hernndez. > San Diego, CA. > "The more you learn, the more you earn". > Fax: (808) 442-0427 > > > -----Original Message----- > From: "Edward W. Rouse" [erouse@comsquared.com] > Date: 08/15/2008 09:48 AM > To: pgsql-sql@postgresql.org > Subject: Re: [SQL] Join question > > I have 2 tables, both have a user column. I am currently > using a left join from table a to table b because I need to > show all users from table a even those not having an entry > in table b. The problem is I also have to include items from > table b with that have a null user. There are some other > criteria as well that are simple where clause filters. So as > an example: > > > > Table a: > > Org|user > > A | emp1 > > B | emp1 > > B | emp2 > > B | emp3 > > C | emp2 > > > > Table b: > > Org|user|color > > A |emp1|red > > A |emp1|blue > > A |null|pink > > A |null|orange > > B |emp1|red > > B |emp3|red > > B |null|silver > > C |emp2|avacado > > > > If I: > > > > select org, user, count(total) > > from a left join b > > on (a.org = b.org and a.user = b.user) > > where a.org = ‘A’ > > group by a.org, a.user > > order by a.org, a.user > > > > I get: > > > > Org|user|count > > A |emp1|2 > > A |emp2|0 > > A |emp3|0 > > > > But what I need is: > > > > A |emp1|2 > > A |emp2|0 > > A |emp3|0 > > A |null|2 > > > > Thanks, > > Edward W. Rouse also like this... select id1,dato1, count(id2) from ( select pr1.id as id1,pr1.dato as dato1,pr2.oid as id2,pr2.dato from pr1 right outer join pr2 on (pr1.id = pr2.oid) ) a group by id1,dato1 -- Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-sql