2016-11-26 17 views
1

私は2つのテーブルを持っています。SQLへのアクセス - 左結合、グループ化、カウント(select select)

TBL1はcolumsを持っています

id1, someothercolumns 

TBL2はcolumsを持っています

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; 

をしかし、私はTBL1からすべてのレコードを見たいとすべてのレコードをカウントしていない、だからここで

bool=false 

たもので、TBL2からすべての項目をカウントする必要はありませんtbl2から。私はサブセレクトで試しましたが、Accessは私のアイデアが好きではありません。 :( は、あなたが私を助けることができる

+0

いいえyosidahari、私はできません。もう一度読んでください。 – junpet

答えて

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; 

は私を与えますクッキー!

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)  

は幸せになる.....

+0

私は幸せですが、ヨウルのスクリプトが間違ったカウントを与える... – junpet

+0

良い、私はそれをチェックした。それは大丈夫です! – Atie

関連する問題