データベース テーブルに存在しない日付の取得に関するクエリがあります。
データベースに以下の日付があります。
2013-08-02
2013-08-02
2013-08-02
2013-08-03
2013-08-05
2013-08-08
2013-08-08
2013-08-09
2013-08-10
2013-08-13
2013-08-13
2013-08-13
そして、私は以下のように期待される結果が欲しい、
2013-08-01
2013-08-04
2013-08-06
2013-08-07
2013-08-11
2013-08-12
ご覧のとおり、結果にはデータベースに存在しない6つの日付があります。
以下のクエリを試しました
SELECT
DISTINCT DATE(w1.start_date) + INTERVAL 1 DAY AS missing_date
FROM
working w1
LEFT JOIN
(SELECT DISTINCT start_date FROM working ) w2 ON DATE(w1.start_date) = DATE(w2.start_date) - INTERVAL 1 DAY
WHERE
w1.start_date BETWEEN '2013-08-01' AND '2013-08-13'
AND
w2.start_date IS NULL;
しかし、上記は次の結果を返します。
2013-08-04
2013-08-14
2013-08-11
2013-08-06
ご覧のとおり、その14から4つの日付を返す必要はありませんが、左結合のためにまだ3つの日付が含まれていません。
今、私のクエリを調べて、これを行うための最良の方法を教えてください。
ご覧いただきありがとうございます。