Mysql 加入:(数据类型、对象id、区域id)

Mysql 加入:(数据类型、对象id、区域id),mysql,Mysql,场地没有问题,因为它已经在进行主键查找了 您需要从事件日期表中获得什么?只有查询的min(timestamp部分是每行一个不同的项目,或者可以有多个项目?在esf、ads、ase、和network_exclusion上添加索引应该会有很大帮助。event_date包含每个事件的每个日期。我只需要下一个_日期(即min(date))您需要从event\u date表中得到什么?只有min(查询的时间戳部分?是每行有一个不同的项目,还是可以有多个项目?在esf、ads、ase和network\u E

场地
没有问题,因为它已经在进行主键查找了


您需要从
事件日期
表中获得什么?只有查询的
min(timestamp
部分是每行一个不同的项目,或者可以有多个项目?在
esf
ads
ase
、和
network_exclusion
上添加索引应该会有很大帮助。event_date包含每个事件的每个日期。我只需要下一个_日期(即min(date))您需要从
event\u date
表中得到什么?只有
min(查询的时间戳部分?是每行有一个不同的项目,还是可以有多个项目?在
esf
ads
ase
network\u Exclution
上添加索引应该会有很大帮助。事件日期包含每个事件的每个日期。我只需要下一个日期(即MIN(日期))这比现在更重要).比尔,请快速阅读你的评论,我已经受到了鼓励。你的建议看起来非常棒。我会很快实施你的建议,见鬼,甚至会买一本你的书。谢谢你考虑我的书。那么这些建议成功了吗?比尔,请快速阅读你的评论,我已经受到了鼓励。你的建议看起来很好It’太棒了。我会很快实施你的建议,见鬼,也许还会买一本你的书。谢谢你考虑我的书。那么这些建议成功了吗?
SELECT 
    keyword_terms, 
    `esf`.*, 
    `venue`.`name` AS venue_name, 
    ...
    `venue`.`zip`, ase.region_id, 
    (DATE(NOW()) BETWEEN...AND ase.region_id IS NULL) as featured, 
    getDistance(`venue`.`lat`, `venue`.`lng`, 36.073, -79.7903) as distance, 
    `network_exclusion`.`id` as net_exc_id
FROM (`event_search_flat` esf)
# Problematic part of query (pulling in the very next date for the event)
LEFT JOIN (
        SELECT event_id, MIN(TIMESTAMP(CONCAT(event_date.date, ' ', event_date.end_time))) AS next_date FROM event_date WHERE 
        event_date.date >= CURDATE() OR (event_date.date = CURDATE() AND TIME(event_date.end_time) >= TIME(NOW()))
        GROUP BY event_id
) edate ON edate.event_id=esf.object_id
# Pull in associated ad space
LEFT JOIN `ad_space` ads ON `ads`.`data_type`=`esf`.`data_type` AND ads.object_id=esf.object_id
# and make sure it is featured within region
LEFT JOIN `ad_space_exclusion` ase ON ase.ad_space_id=ads.id AND region_id =5
# Get venue details
LEFT JOIN `venue` ON `esf`.`venue_id`=`venue`.`id`
# Make sure this event should be listed
LEFT JOIN `network_exclusion` ON network_exclusion.data_type=esf.data_type  
                 AND network_exclusion.object_id=esf.object_id
                 AND network_exclusion.region_id=5
WHERE `esf`.`event_type` IN ('things to do') 
AND (`edate`.`next_date` >= '2013-07-18 16:23:53')
GROUP BY `esf`.`esf_id`
HAVING `net_exc_id` IS NULL
AND `distance` <= 40
ORDER BY DATE(edate.next_date) asc, 
`distance` asc
LIMIT 6
SELECT event_id, TIMESTAMP(CONCAT(event_date.date, ' ', event_date.end_time))) AS next_date
FROM event_date 
WHERE event_date.date >= CURDATE() 
  OR (event_date.date = CURDATE() AND TIME(event_date.end_time) >= TIME(NOW()))
ORDER BY next_date LIMIT 1