2

Atableと tableの 2 つのテーブルがありますB

テーブルAには次のフィールドがあります。

id(primary key), 
references_id

テーブルBには次のフィールドもあります。

id(primary_key) 
references_id. 

の ID が与えられたので、取得する必要があり、byAを取得する必要があります。A.idcount(B.references_id)A.references_id

SQLクエリでそれを行うにはどうすればよいですか?

4

3 に答える 3

4

テーブルに が存在しないLEFT JOIN場合でも表示されるように使用します。このようなことを試してみてください。references_idB

SELECT  a.ID, COUNT(b.References_ID) totalCount
FROM    A LEFT JOIN B
            ON a.References_ID = b.References_ID
GROUP BY a.ID
于 2012-10-03T14:42:24.577 に答える
1

そこに別のオプションを投げるために、今回は相関サブクエリを使用します。

select a.id, (select count(*) from b where references_id = a.id) as ref_count
from a as a

join and group by奇妙なことに、これにより、ソリューションよりも効率的な実行計画が得られる場合があります。私はよく両方を試します。

于 2012-10-03T14:54:25.057 に答える
1

これを試して:

SELECT A.Id, COUNT(B.references_id)
FROM A
INNER JOIN B A.Reference_ID = B.References_ID
GROUP BY A.Id
于 2012-10-03T14:42:31.583 に答える