多次查询,条件计数> 0

时间:2010-09-16 21:26:54

标签: sql postgresql many-to-many

我有3张桌子:

  • 电子邮件
  • Foo
  • EmailFoos(多对多联接表)

Foo可以完成与否。

我需要找到一组电子邮件,其中已完成的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。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

我很确定你只需要将having中的foo_count替换为count(l.foo_id)。