dポイントプレゼントキャンペーン実施中!

◆環境
・Postgresql

■前提
・テーブルA … C_idカラム
・テーブルB … D_idカラム

■やりたいこと
・テーブルAデータを取得する際、テーブルAレコードに応じて、テーブルB「D_idカラム」の数(レコード数)も取得したい

■取得イメージ例
・テーブルA「全カラム」&テーブルB「D_idカラム」の「count」カラム
※「count」カラム … テーブルBにある「D_idカラム」の数

■知りたいこと
・どこにも存在しないこの「count」カラムはどうやって作成したら良いでしょうか?
・全体のSQL文

A 回答 (1件)

SELECT A.id, COUNT(B.A_id) AS count


FROM table_A AS A
LEFT OUTER JOIN table_b AS B ON(a.id = b.A_id)
GROUP BY A.id;

または

SELECT
A.id,
(SELECT COUNT(*) FROM table_B AS B WHERE A.id = B.A_id) AS count
FROM table_A AS A;

何度も呼び出すクエリであれば、JOINやサブクエリで取得するより、AとBのテーブルそれぞれSELECTして配列操作したほうが軽いと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!出来ました!配列操作はまだ確認できてませんが今後、配列操作の勉強もしていきたいと思います。

お礼日時:2020/09/27 19:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す