sql >> データベース >  >> RDS >> Mysql

ギャップを埋めるために空白を追加するMySQLクエリ

    1つの解決策は、サブクエリを使用して日付を生成し、このサブクエリをテーブルに結合することです。

    過去7日間のみが必要な場合は、次の方法で試すことができます:

    select d.testdate, coalesce(t.val1,0), coalesce(t.val2,0)
    from
      (select current_date as testdate
       union all select current_date - interval 1 day
       union all select current_date - interval 2 day
       union all select current_date - interval 3 day
       union all select current_date - interval 4 day
       union all select current_date - interval 5 day
       union all select current_date - interval 6 day) d
      left join tblMyData t
      on d.testdate = t.testdate
    

    current_dateの代わりに、テーブルの過去7日間が必要な場合、クエリは次のようになります。

    select m.m - interval d day, coalesce(t.val1,0), coalesce(t.val2,0)
    from
      (select max(testdate) as m from tblMyData) m
      cross join
      (select 0 as d
       union all select 1
       union all select 2
       union all select 3
       union all select 4
       union all select 5
       union all select 6) d
      left join tblMyData t
      on m.m - interval d day = t.testdate
    

    こちら のフィドルをご覧ください。 。



    1. Javascriptプロンプトボックスから値を取得してPHP変数に渡してSQLに保存できるようにするにはどうすればよいですか?

    2. 値が最大カウントを持つmysql

    3. MySQLの日付形式指定子のリスト

    4. 2つのコースの両方に登録した学生を探す