- ベストアンサー
※ 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を合計した数値になります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
手元に環境が無いので無試験ですが。 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 ;
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
回答No.2
×)IFNULL(vwB.pnt_ttl) as point_total ○)IFNULL(vwB.pnt_ttl, 0) as point_total
お礼
とても助かりました。 本当にありがとうございます! いまいろいろと行き詰ってることがありまして 近々、また質問すると思います。 今後ともよろしくお願い致します。