Received: from localhost (unknown [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id 92B5A2E005B for ; Wed, 6 Feb 2008 17:38:04 -0400 (AST) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 34331-05 for ; Wed, 6 Feb 2008 17:38:00 -0400 (AST) Received: from twigger.atof.net (twigger.atof.net [70.42.55.28]) by postgresql.org (Postfix) with ESMTP id 06A292E330A for ; Wed, 6 Feb 2008 17:38:00 -0400 (AST) Received: from [192.168.1.223] ([::ffff:216.171.183.110]) (AUTH: CRAM-MD5 tomhart@coopfed.org, TLS: TLSv1/SSLv3, 256bits, AES256-SHA) by twigger.atof.net with esmtp; Wed, 06 Feb 2008 16:37:59 -0500 id 002AB0FD.47AA28B7.00003081 Message-ID: <47AA2864.3080806@coopfed.org> Date: Wed, 06 Feb 2008 16:36:36 -0500 From: Tom Hart User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 To: PG-SQL List Subject: outer join issues Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200802/39 X-Sequence-Number: 30130 Let me preface this by saying hello SQL list, and I'm an idiot. My SQL knowledge is advanced to the point of being able to use a WHERE clause basically, so I appreciate your business. Now on to my issue I have 3 tables I'm trying to use in this query: loan, share and draft (for those of you not familiar with credit unions, share and draft are savings and checking accounts). What I'm trying to do is get a list of all loans that were charged off (ln_chgoff_dt > 0), and any share and draft accounts that have the same account number. My query looks something like this SELECT ln_acct_num, ln_num, ln_chrgoff_dt, ln_chrgoff_amt, sh_balance, sh_stat_cd, df_balance, df_stat_cd FROM loan LEFT OUTER JOIN share ON loan.ln_acct_num = share.sh_acct_num LEFT OUTER JOIN draft ON loan.ln_acct_num = draft.df_acct_num WHERE ln_chrgoff_dt > 0 AND loan.dataset = 0 AND share.dataset = 0 AND draft.dataset = 0 ; Now the query SELECT * FROM loan WHERE ln_chrgoff_dt > 0 AND loan.dataset = 0 returns 139 rows. Shouldn't the first query return at least that many? My understanding is that a LEFT OUTER JOIN will not drop any records that are only found in the first table, regardless of whether they match records on the second or third table. I end up with 14 results with the first query. I know I'm doing something wrong, but I'm not sure what. Anybody have a helpful kick in the right direction for me? Thanks in advance. -- Tom Hart IT Specialist Cooperative Federal 723 Westcott St. Syracuse, NY 13210 (315) 471-1116 ext. 202 (315) 476-0567 (fax)