访问SQL - 左连接,分组依据,计数(选择位置)

时间:2016-11-26 10:19:44

标签: sql ms-access group-by left-join

我有2张桌子。

tbl1有列:

id1, someothercolumns

tbl2有列:

id2, id1, bool

我可以毫无问题地通过id1加入他们。我可以这样做:

SELECT tbl1.id1, Count(tbl2.id2) AS CountOfid2
FROM tbl1 LEFT JOIN tbl2 ON tbl1.id1= tbl2.id1
GROUP BY tbl1.id1;

但我不想计算tbl2中的所有项目,

bool=false

所以,我希望看到来自tbl1的所有记录,而不是计算来自tbl2的所有记录。我尝试使用sub-select,但Access不喜欢我的想法。 :( 你能救我吗?

2 个答案:

答案 0 :(得分:2)

我找到了解决方案:

SELECT tbl1.id1, Count(tmptbl.id2) AS CountOfid2
FROM tbl1 LEFT JOIN (SELECT tbl2.id1, tbl2.id2 FROM tbl2 WHERE bool=false) as tmptbl ON tbl1.id1= tmptbl.id1
GROUP BY tbl1.id1;

给我饼干!

答案 1 :(得分:0)

请测试这个脚本:

   select distinct t1.id1,t4.countofID2 from tbl1 t1
   left outer join 
   (select t3.con as countofID2 ,* from tbl2
   ,(SELECT COUNT(t2.id2)as con 

   FROM tbl2 t2) as t3)as t4
   on(t1.id1=t4.id1)    

快乐.....