gpt4 book ai didi

mysql - 优化 MySQL 数据库的查询结果

转载 作者:行者123 更新时间:2023-11-29 08:13:46 24 4
gpt4 key购买 nike

我有以下查询:

SELECT routes.route_date, time_slots.name, time_slots.openings, time_slots.appointments
FROM routes
INNER JOIN time_slots ON routes.route_id = time_slots.route_id
WHERE route_date
BETWEEN 20140109
AND 20140115
AND time_slots.openings > time_slots.appointments
ORDER BY route_date, name

这工作得很好,会产生以下结果:

enter image description here

我想要做的是每个日期只返回一个name。因此,第 9 个(name = 1)只会有 1 个结果,而不是像目前那样有 2 个结果。

最佳答案

更新:在此处查看不同类型解决方案的 SQLFIDDLE: http://sqlfiddle.com/#!2/9ac65b/6

如果您使用...,它会解决您的请求吗

选择不同的routes.route_date...您的查询...?

这取决于您是否知道您的行对于相同的日期/名称始终具有相同的值。

否则使用分组依据...

(我认为最适合您的要求)

SELECT routes.route_date, time_slots.name, sum(time_slots.openings), sum(time_slots.appointments)
FROM routes
INNER JOIN time_slots ON routes.route_id = time_slots.route_id
WHERE route_date
BETWEEN 20140109
AND 20140115
AND time_slots.openings > time_slots.appointments
group by routes.route_date, time_slots.name
ORDER BY route_date, name

(我对空缺和约会进行了汇总,您可以进行最小、最大、计数等。选择最适合您要求的一个!)

关于mysql - 优化 MySQL 数据库的查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21033615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com