私はこれらの2つのテーブルを持っています:
DateRanges
some_id start_date end_date
---------------------------------
1 2012-12-01 2012-12-15
1 2013-01-01 2013-01-15
3 2013-01-03 2013-01-10
Items
id name
----------------
1 Some name
2 Other name
3 So on...
私が達成しようとしているのは、Items
テーブル内の各要素について、最大のものを取得start_date
し (そのアイテムのより小さな日付/日付範囲を無視して)、次のテーブルのように現在の日付がその範囲内にあるかどうかを確認することです (今日の 02 としましょう) 2013 年 1 月):
id name TodayIsInTheRange
---------------------------------------------
1 Some name true
2 Other name false
3 So on... false
次のクエリで 3 番目のテーブルを取得しようとしました。
SELECT A.*, (B.`start_date` <= CURRENT_DATE AND CURRENT_DATE <= B.`end_date`) AS `TodayIsInTheRange`
FROM `Items` as A
LEFT JOIN `DateRanges` as B ON
A.id = B.some_id
SORT BY B.`end_date` DESC
しかし、このクエリでは、同じアイテムに対して 2 つのレコードがあるため、アイテムが繰り返されDateRanges
ます。