MySQL JOIN条件查询

时间:2014-03-07 13:31:57

标签: mysql sql

查询的作用: 它根据当前时间获取所需数据,例如事件标题,帖子名称,工作日,事件开始时间,即将发生的事件的事件结束时间。

我从PHP日期('w')和当前时间传递工作日值。

问题:我希望它仅匹配当前工作日的start_hour(在本例中为5)。我在哪里AND wp_wcs3_schedule.start_hour > '09:00:00'需要将此条件限制为应用于当前工作日,在这种情况下为“5”。

SELECT wp_posts.ID, wp_posts.post_title, wp_posts.post_name, wp_wcs3_schedule.weekday, 
    wp_wcs3_schedule.start_hour, wp_wcs3_schedule.end_hour
FROM wp_wcs3_schedule
INNER JOIN wp_posts
WHERE wp_wcs3_schedule.class_id = wp_posts.ID
AND wp_wcs3_schedule.weekday >=5
AND wp_wcs3_schedule.start_hour >  '09:00:00'
AND wp_posts.post_title NOT LIKE  '%squash%'
AND wp_posts.post_title NOT LIKE  '%sal%'
ORDER BY wp_wcs3_schedule.weekday, wp_wcs3_schedule.start_hour ASC LIMIT 0,3

1 个答案:

答案 0 :(得分:1)

您可以使用OR轻松完成此操作,所以

AND ( wp_wcs3_schedule.weekday > 5 OR wp_wcs3_schedule.start_hour >  '09:00:00')

你已经有了> = 5所以.weekday将是5或者更高,然后这只会将开始时间标准应用于工作日== 5的那些。这给出了

的最终查询
SELECT wp_posts.ID, wp_posts.post_title, wp_posts.post_name, wp_wcs3_schedule.weekday, 
    wp_wcs3_schedule.start_hour, wp_wcs3_schedule.end_hour
FROM wp_wcs3_schedule
INNER JOIN wp_posts
WHERE wp_wcs3_schedule.class_id = wp_posts.ID
AND wp_wcs3_schedule.weekday >=5
AND ( wp_wcs3_schedule.weekday > 5 OR wp_wcs3_schedule.start_hour >  '09:00:00')
AND wp_posts.post_title NOT LIKE  '%squash%'
AND wp_posts.post_title NOT LIKE  '%sal%'
ORDER BY wp_wcs3_schedule.weekday, wp_wcs3_schedule.start_hour ASC LIMIT 0,3