MySQLでデータの結合と月ごとのデータの出力
MySQLでサブクエリやDATE_FORMATを使用したので、 手順書等を記載いたします。
1.月毎にデータを出力する
データを月毎の結果で出力したい場合は DATE_FORMTというものを使います。
使い方としましては
SELECT DATE_FORMAT(fuga_time, '%Y-%m'), COUNT(*) FROM hoges GROUP BY DATE_FORMAT(fuga_time, '%Y%m');
といった形式で使用します。 例えば期間を指定すると、その期間で結果が表示されます。
SELECT DATE_FORMAT(fuga_time, '%Y-%m'),count(*) FROM hoges WHERE fuga_time between '2016-01-01' and '2016-12-31' GROUP BY DATE_FORMAT(fuga_time, '%Y-%m')
こちらですと2016年1月から12月のデータが月毎で表示されます。
2.条件指定したテーブルを結合する
続いてはテーブルをWHEREで検索したものを他のテーブルに結合する手順を紹介いたします。 まずは単純にテーブルで検索を行います。
SELECT id FROM customers WHERE birthday between '1970-01-01' and '1999-12-31'
こちらの検索結果のテーブル情報を他のテーブルに結合したいときは サブクエリを使用します。
SELECT c.name , count(*) , sum(orders.price) FROM orders INNER JOIN ( SELECT id FROM customers WHERE birthday between '1970-01-01' and '1999-12-31') AS c ON orders.customer_id = c.id
このようにすることでまとまったデータを他のテーブルに結合することが出来ます。
それでは