0

2 つのテーブルがあり、両方のテーブルで ID 番号のカウントを取得したいと考えています。1 つのテーブルには 1 つの結果しかありませんが、もう 1 つのテーブルにはさらに多くの結果が含まれる可能性があります。

select 
a.ID,
count(a.ID),
count(b.ID)
from a

join b on
(b.ID=a.ID)

where a.ID='7820193'
group by a.ID

結果は次のようになります ID 7820193 count (a.ID)=200 count(b.ID)=200

ただし、すべてのタイプの結合 (左、右、内側) で試しましたが、その ID 番号のインスタンスは 1 つしかありません。何が間違っていますか?

4

4 に答える 4

0

それを試してみてください。

SELECT a.ID, COUNT(a.ID) counta, (SELECT COUNT(b.ID) FROM b WHERE b.ID = a.ID  GROUP BY b.ID) AS countb
FROM a 
WHERE a.ID='7820193' GROUP BY a.ID
于 2013-04-03T09:50:47.617 に答える
0

これにより、期待される結果が得られるはずです。試してみてください:)

SELECT 
    z.id,
    count(a.id) as count_ID_from_Table_A,
    count(b.id) as count_ID_from_Table_B
FROM
   (SELECT ID FROM table1
    UNION
    SELECT ID FROM table2) z
LEFT JOIN 
    table1 a ON z.id=a.id
LEFT JOIN 
    table2 b ON z.id=b.id
GROUP BY 
    z.id
于 2016-06-14T07:26:59.817 に答える
0

これでうまくいくはずです:

SELECT
  Derived.id,
  COUNT(*),
  Derived.count

FROM(
  SELECT
    id,
    COUNT(*) AS count

  FROM a

  WHERE id = 7820193
) AS Derived

JOIN b AS b ON b.id = Derived.id
于 2013-04-03T09:43:22.960 に答える