• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:集計方法について教えて下さい。PHP+MYSQL)

集計方法について教えてください

このQ&Aのポイント
  • PHPとMYSQLを使用してtable_Aとtable_Bからtable_Cの内容を取得するためのSQLを教えてください。
  • table_Cのcount項目は、cdでマッチするtable_Bのtypeの種類をカウントしたものです。
  • table_Cのpoint_total項目は、cdでマッチするtable_Bのpointを合計した数値になります。

質問者が選んだベストアンサー

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

手元に環境が無いので無試験ですが。 SQL文はこんな感じ ※インデントに全角スペースを用いてるのでコピペの際には注意 SELECT tblA.cd, tblA.name, IFNULL(vwB.cnt, 0) as count, IFNULL(vwB.pnt_ttl) as point_total FROM tableA as tblA LEFT JOIN (  SELECT cd, count(cd) as cnt, sum(point) as pnt_ttl  FROM tableB  GROUP BY cd ) as vwB ON tblA.cd = vwB.CD ORDER BY tblA.cd ; 結果をtableCとして保存したいなら、先頭に create table tableC as を追加 CREATE TABLE tableC as SELECT tblA.cd, tblA.name, IFNULL(vwB.cnt, 0) as count, IFNULL(vwB.pnt_ttl) as point_total FROM tableA as tblA LEFT JOIN (  SELECT cd, count(cd) as cnt, sum(point) as pnt_ttl  FROM tableB  GROUP BY cd ) as vwB ON tblA.cd = vwB.CD ORDER BY tblA.cd ;

BottleCap
質問者

お礼

とても助かりました。 本当にありがとうございます! いまいろいろと行き詰ってることがありまして 近々、また質問すると思います。 今後ともよろしくお願い致します。

その他の回答 (1)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

×)IFNULL(vwB.pnt_ttl) as point_total ○)IFNULL(vwB.pnt_ttl, 0) as point_total

関連するQ&A