Received: from localhost (postgresql.org [64.49.215.8]) by postgresql.org (Postfix) with ESMTP id E23824767F2 for ; Fri, 22 Nov 2002 14:39:54 -0500 (EST) Received: from red.asis.com (red.asis.com [207.20.154.12]) by postgresql.org (Postfix) with ESMTP id 57EBB47672A for ; Fri, 22 Nov 2002 14:39:43 -0500 (EST) Received: from inky (05-060.139.popsite.net [64.24.221.60]) by red.asis.com (8.12.6/8.12.6) with SMTP id gAMJdiaT007044 for ; Fri, 22 Nov 2002 11:39:44 -0800 (PST) (envelope-from nyoung@asis.com) From: Nathan Young To: pgsql-sql@postgresql.org Date: Fri, 22 Nov 2002 11:44:20 -0800 X-Priority: 3 (Normal) Reply-To: nathan@ncyoung.com Organization: N.C. Young Design Message-Id: Subject: join question MIME-Version: 1.0 Content-Type: text/plain; charset="windows-1252" X-Mailer: Opera 6.0 build 1010 X-Virus-Scanned: by AMaViS new-20020517 X-Archive-Number: 200211/380 X-Sequence-Number: 10522 Hi all. I have a table with members and a table with payments. Each payment is related to a member by memberID and each payment has (among other things) a year paid. I can create a join to find a list of members who have paid for a given year (2002 in this case): select member.memberID,member.name from member, payment where payment.memberID = member.memberID and payment.yearPaid = 2002 I would like to be able to get a list of members who have not paid for a given year. I would also like to combine the two criteria, for example to generate a list of members who have paid for 2002 but not 2003. Thanks in advance! --->Nathan --- (([^/]+)/([^/]+)){0,1}/*(([^/]+)/([^/]+)){0,1}/*(([^/]+)/([^/]+)){0,1}/* (([^/]+)/([^/]+)){0,1}/*(([^/]+)/([^/]+)){0,1}/*(([^/]+)/([^/]+)){0,1}/* --- Nathan Young N. C. Young Design (530)629-4176 http://ncyoung.com