【发布时间】:2014-12-04 19:55:59
【问题描述】:
我有一个事件表和相关的 EventAddress 表。我想获取在特定日期具有最晚时间且小于给定时间的事件的地址。因此,如果今天有 2 个事件,一个在 2pm-3pm,一个在 5pm-6pm,而我的下一个事件是在 7pm-8pm,我希望获得结束时间早于新事件开始时间的事件。所以在这个例子中,我想要下午 5 点到 6 点的活动地址。希望这是有道理的。以下是我在尝试关注this SO post 之后所拥有的。
SELECT
ea1.Address,
ea1.City,
ea1.State,
ea1.Zip,
e.EventEndDate
FROM EventAddress ea1
INNER JOIN (SELECT
Events.EventAddressId,
MAX(Events.EventEndDate) AS maxdate
FROM Events
GROUP BY Events.EventAddressId) max_record
ON max_record.EventAddressId = ea1.EventAddressId
INNER JOIN Events e
ON ea1.EventAddressId = e.EventAddressId
WHERE DATE(e.EventStartDate) = '2014-11-06'
AND e.FranchiseId = 1
AND TIME(e.EventEndDate) <= '18:00:00'
编辑:内部 SELECT 返回正确的结果,但最终结果仍然返回 2 个事件。
【问题讨论】:
标签: mysql