Got it after a bit of fiddling ... actually, not bad code ... SELECT distinct s.gid, s.created, count(i.title) AS images FROM status s LEFT JOIN images i ON (s.gid = i.gid AND i.active), personal_data pd, relationship_wanted rw WHERE s.active AND s.status != 0 AND (s.gid = pd.gid AND pd.gender = 0) AND (s.gid = rw.gid AND rw.gender = 0 ) GROUP BY s.gid,s.created ORDER BY images desc; The part that had confused me was the whole 'ON' part ... once I clued in that that is essentially a WHERE, it actually made sense ... On Sat, 12 May 2001, The Hermit Hacker wrote: > > Okay, not sure best way to try and describe this ... have multiple tables, > of a form like: > > table a > gid int > data text > > table b > gid int > data text > > table c > gid int > data text > > table d > gid int > data text > > I want to return: > > a.gid,a.data,b.data,c.data,count(d.data) > > where > > a.gid = b.gid = c.gid = d.gid > > *but* I want count(d.data) to return zero *if* there are no records in > table d ... > > essentially, gid has to exist in tables a,b,c but not d ... > > So, ignoring table d, i'd have: > > SELECT a.gid,a.data,b.data,c.data > FROM tablea a, tableb b, tablec c > WHERE a.gid = b.gid > AND b.gid = c.gid; > > How do I add 'tabled d' to the mix? > > Thanks ... > > Marc G. Fournier ICQ#7615664 IRC Nick: Scrappy > Systems Administrator @ hub.org > primary: [EMAIL PROTECTED] secondary: scrappy@{freebsd|postgresql}.org > > Marc G. Fournier ICQ#7615664 IRC Nick: Scrappy Systems Administrator @ hub.org primary: [EMAIL PROTECTED] secondary: scrappy@{freebsd|postgresql}.org ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])