SELECT     dbo.lists_.Name_, COUNT(dbo.members_.EmailAddr_) AS nojgid
FROM          dbo.lists_
    INNER JOIN     dbo.topics_ ON dbo.lists_.Topic_ = dbo.topics_.Title_
    LEFT JOIN  dbo.members_  ON dbo.members_.List_ = dbo.lists_.Name_
GROUP BY dbo.lists_.Name_,

The first inner join gives you a row for every list.
The left join gives you a row for every (member, list) pair plus a row (with
a null) for every list with no member.
The COUNT will count the non-null things
Note that you want to select/group on dbo.lists_.Name_, not
dbo.members_.List_, which may be null.


HTH

===== Original Message Follows =====

From: "John Berman" <[EMAIL PROTECTED]>
Subject: Count even when empty
Date: Sun, 15 Aug 2004 01:02:52 +0100

Further to my earlier query

Im using this

SELECT     dbo.members_.List_, COUNT(dbo.members_.EmailAddr_) AS nojgid
FROM         dbo.members_ INNER JOIN
                      dbo.lists_ ON dbo.members_.List_ = dbo.lists_.Name_
INNER JOIN
                      dbo.topics_ ON dbo.lists_.Topic_ = dbo.topics_.Title_
WHERE     (dbo.members_.jgid IS NULL)
GROUP BY dbo.members_.List_

This works but I want to get a 0 when dbo.members_.jgid IS NULL so my output
shows a 0 for a list, currently is does not show the list when its empty
(obviously because I use is null)


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to