1

我有事件列表,所以每个事件的开始日期到结束日期,所以每个事件都有事件开始日期和结束日期之间的时间表列表我只需要获得第一个最近的日期我的意思是第一个事件的时间表日期。

这是我的代码

SELECT
  s.schedule_id, s.schedule_start_time, s.schedule_end_time, s.schedule_topic, s.Parallel,
  c.speaker_name
FROM schedule_table AS s, speaker_profile_table AS c
WHERE
  s.event_id='23'
  OR s.schedule_date LIKE '%2012-06-07%'
  AND c.speaker_id = s.speaker_id
ORDER BY s.schedule_start_time ASC

在这里,我得到所有这样的时间表

时间表1:2012-06-06,时间表2:2012-06-06,时间表3:2012-06-08

在这里我只需要 schedule1 和 schedule2 我不需要 schedule3 我怎么能得到这个请指导我

感谢提前

4

1 回答 1

0

如果我正确理解您想要什么,这应该可以完成工作(已编辑):

SELECT
  s.schedule_id, s.schedule_start_time, s.schedule_end_time, s.schedule_topic, s.Parallel,
  c.speaker_name
FROM schedule_table s
LEFT JOIN speaker_profile_table c ON c.speaker_id = s.speaker_id
WHERE s.schedule_date = (
  SELECT schedule_date
  FROM schedule_table
  WHERE
    event_id = '23'
    OR schedule_date LIKE '%2012-06-07%'
  ORDER BY schedule_date ASC
  LIMIT 1
)
ORDER BY s.schedule_start_time ASC
于 2012-05-15T11:41:27.247 回答