我有一个(我的能力)相当复杂的查询,我正在努力改进 . 我多次使用相同的查询,只更改一些参数,所以我希望不需要完全重写 .
我按日期和地点搜索一堆事件 . 我把这些放到一个html表中
Date 1 Date2 Date3
event1/1 event1/2 event1/3
event1/2 event2/2 event1/3
event1/3 event2/3 event3/3
希望这能让您了解输出和分组 .
现在我提交3个查询,每天一个查询,然后传入日期字段 . 我希望能够做的是两件事1)提供一个日期范围,所以我只做一个查询2)如果结果组为空(所以没有日期3),响应将返回date4
这是我到目前为止所得到的,但它没有实现objective2(空组),并且它似乎没有在日期范围内返回正确的数字,因为我限制了结果的数量(尽管即使没有限制,我没有得到正确的结果
我稍微简化了查询,以便更容易理解,但结构完全相同
SELECT event.stuff, user.stuff, eventdate.stuffshows ,
GROUP_CONCAT( user.groupstuff ) AS myStuff
FROM events
JOIN users ON events.id = users.bid
WHERE location= location
AND event.date
BETWEEN '2009-08-14'
AND '2009-08-17'
GROUP BY event.date
ORDER BY event.date, user.id DESC
LIMIT 0 , 5
) mystuff ON event.bid = similar.id
AND event.date=similar.date
所以我正在寻找的是这种出类型(类似于我上面的内容)
date1 / event1
date1 / event2
date1 / event3
date1 / event4
date1 / event5
date2 - empty - nothing returned, go to date3
date3 / event1
date3 /event2
date3 / event3
date4 / event1
date4 / event2
date5 - empty - nothing returned, go to date6
date6 / event1
我希望这很清楚,而且这是可能的 .
1 回答
您可以通过子查询中的HAVING执行此操作: