MySQL Group By-具有MIN函数的三个表

MySQL Group By-具有MIN函数的三个表,mysql,Mysql,我一直在这里寻找我的问题的答案,但没有结果 我正在从事一个项目,其中涉及3个表,3个表是航班、住宿和转机 任务是找到每月和每天最便宜的价格,因此需要两个单独的查询 第一个查询是查找每月最低价格,例如: 选择 sub_a.起始日期, 圆形的 明苏布阿普里斯+ 米苏布·菲利斯+ 从matrix.iv_传输中选择MINt.PricePP作为t,其中t.PropertyID=sub_a.PropertyID,t.成人=sub_a.成人,t.Airport=sub_f.arrairport和sub_a.s

我一直在这里寻找我的问题的答案,但没有结果

我正在从事一个项目,其中涉及3个表,3个表是航班、住宿和转机

任务是找到每月和每天最便宜的价格,因此需要两个单独的查询

第一个查询是查找每月最低价格,例如:

选择 sub_a.起始日期, 圆形的 明苏布阿普里斯+ 米苏布·菲利斯+ 从matrix.iv_传输中选择MINt.PricePP作为t,其中t.PropertyID=sub_a.PropertyID,t.成人=sub_a.成人,t.Airport=sub_f.arrairport和sub_a.startdate介于t.RangeStart和t.RangeEnd之间+ 2.50 作为TotalPP, 圆形的 明苏布阿普里斯+ 米苏布·菲利斯+ 从matrix.iv_传输中选择MINt.PricePP作为t,其中t.PropertyID=sub_a.PropertyID,t.成人=sub_a.成人,t.Airport=sub_f.arrairport和sub_a.startdate介于t.RangeStart和t.RangeEnd之间+ 2.50 * 1.1 作为总AGTPP, 德普机场分公司, 机场分公司, 蒙苏布阿开始日期为开始日期, 日期\格式子日期a.startdate,%b%y作为格式日期, 分条款a.期限, 附属财产 从…起 选择 a、 援助, f、 fid, a、 开始日期, f、 外界, 米娜·阿普丽斯是阿普丽斯, 米夫米饭 来自matrix.iv_liveaccomm作为 使用地点、持续时间和成人加入matrix.iv_liveflights作为f 其中a.PropertyID=22 a.持续时间=7 a.成人=2 和a.board='BB' f.outbounddate=a.startdate 而f.depairport='LHR' 按a.aid、f.fid、a.startdate、f.outbounddate分组 AS X 将matrix.iv_liveaccomm连接为sub_a ONsub_a.aid=X.aid 将matrix.iv_liveflights作为sub_f ONsub_f.fid=X.fid加入 按每月开始日期分组; 上面的查询返回以下结果:

第二个查询是检索给定月份每天的最低价格

选择 a月开始日期为月日期, 圆形的 阿普里斯亚酒店+ sub_f.f.价格+ 从matrix.iv_传输中选择MINt.PricePP作为t,其中t.PropertyID=sub_a.PropertyID,t.成人=sub_a.成人,t.Airport=sub_f.arrairport和sub_a.startdate介于t.RangeStart和t.RangeEnd之间+ 2.50 作为TotalPP, 德普机场分公司, 机场分公司, 蒙苏布阿开始日期为开始日期, 日期\格式子日期a.startdate,%b%y作为格式日期, 分条款a.期限, sub_a.财产ID, h、 iv_PropertyReferenceID作为PropertyReferenceID, 副董事会, 地下室, 次级a.评级, 分包商a.`2对于1`, 分包商a.`3代表2`, 分包商a.‘4分包商3分包商’, 附件a.`3和4`, 分包商a.freebb, 亚成年, 亚裔儿童, 副秘书长, 搜索结果:tkn=,日期形成时间开始日期,%d-%m-%Y,,|,|,时间,持续时间,a:,a:,a:,d.iv.V.飞机港口,a:,a:,aa.iv.iv.飞机港口,a:,aa.iv.iv.iv.iv.iv.飞机港口,a:,aa.iv.iv.iv.飞机港口,a:,a:,aa.iv.iv.iv.飞机港口,a:,a:,a.iv.iv.iv.iv.飞机港口,a.飞机,a.飞机,a:,a:,aa.iv.iv.iv.iv.V.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a:,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.飞机,a.a.,sub_a.PropertyID为DeepLink 从…起 选择 a、 援助, f、 fid, a、 开始日期, f、 外界, 米娜·阿普丽斯是阿普丽斯, 米夫米饭 来自matrix.iv_liveaccomm作为 使用地点、持续时间和成人加入matrix.iv_liveflights作为f 其中a.PropertyID=22 a.持续时间=7 a.startdatet=6 a.成人=2 和a.board='BB' f.outbounddate=a.startdate 而f.depairport='LHR' 按a.aid、f.fid、a.startdate、f.outbounddate分组 AS X 将matrix.iv_liveaccomm连接为sub_a ONsub_a.aid=X.aid 将matrix.iv_liveflights作为sub_f ONsub_f.fid=X.fid加入 加入global.hotels,成为h ONh.iv_PropertyID=sub_a.PropertyID 加入global.resorts作为r.iv_ResortID=h.iv_ResortID上的r 在des.iv_RegionID=r.iv_RegionID上加入global.destinations作为des 加入global.airports作为da上的da。airportcode=sub_f.depairport 加入global.mealbasis作为m.MealBasisCode=sub_a.board上的m 加入global.airports作为aa上的aa。airportcode=sub_f.arrairport 按X.起始日期分组; 并产生以下结果:

从第一个屏幕截图可以看出,6月份的最低价格是383,但在第二个屏幕截图中,最低价格是386


为什么价格不同于按月份和日期分组


谢谢

您有什么问题?为什么价格与按月份和日期分组的价格不同?您考虑过使用视图吗?这将使读取代码变得更加容易。另外,在第二个查询中,全局模式中的表是什么?您的第二个查询有一个额外的where条件,并且内部连接到六个额外的表;它们不是以两种不同的方式聚合相同的数据。他们以不同的方式聚合不同的数据。旁注:拆分您的连接条件,使三个在使用中,一个在何处,大概是为了节省一点输入,这是一种糟糕的形式。您的问题是什么?为什么价格不同于按月份和日期分组?您是否考虑过为此使用视图?这会使你的梦想成真
编写代码要容易得多。另外,在第二个查询中,全局模式中的表是什么?您的第二个查询有一个额外的where条件,并且内部连接到六个额外的表;它们不是以两种不同的方式聚合相同的数据。他们以不同的方式聚合不同的数据。旁注:将连接条件拆分为三个在USING中,一个在WHERE中,这可能是为了节省一点输入,这是一种糟糕的形式。