2010-09-16 46 views
0

我有3个表:多对多查询与条件计数> 0

  • 电子邮件
  • EmailFoos(多对多的连接表)

富能完成与否。

我需要找到一组电子邮件,其中完成FOOS> 0的计数(和逆,但我也许可以做到这一点;)

我想是这样的:

SELECT e.id, e.address, count(l.foo_id) as foo_count 
FROM emails e 
LEFT JOIN (
    SELECT l.foo_id, l.email_id 
    FROM foo_emails l 
    JOIN foos f ON (l.foo_id = f.id AND f.status = 'complete')) l ON 
(l.email_id = e.id) 
GROUP BY e.id 
HAVING foo_count > 0; 

但它一直告诉我foo_count不存在。我的SQL_FU很弱。 Postgress是DBMS。任何帮助深表感谢。

回答

4

我敢肯定你只需要用count(l.foo_id)替换having中的foo_count。

+0

非常感谢!这似乎很好。 – user3606139 2010-09-16 21:44:33