我有这两张表:
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
我试图通过下一个查询获取第三张表:
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
但是通过这个查询,我的项目会重复自己,因为我有两个DateRanges
相同项目的记录。