Mysql 带条件和的内连接
因此,我有3个表,其中我需要获得按Mysql 带条件和的内连接,mysql,sql,join,Mysql,Sql,Join,因此,我有3个表,其中我需要获得按day\u of_week列分组的价格列的总和,并且只返回具有最低总和的day\u of_week 换句话说,所有的场馆都有很多服务,通过这些服务,他们有可用的天数和价格。因此,场馆在某一天的价格,是它在某一天的服务价格的总和。我需要某一天的金额,即最低金额,例如本周的最低价格 这是我目前的疑问: SELECT * , SUM( ad.price ) AS venue_price FROM venues AS v JOIN services AS s ON v.
day\u of_week
列分组的价格列的总和,并且只返回具有最低总和的day\u of_week
换句话说,所有的场馆都有很多服务,通过这些服务,他们有可用的天数和价格。因此,场馆在某一天的价格,是它在某一天的服务价格的总和。我需要某一天的金额,即最低金额,例如本周的最低价格
这是我目前的疑问:
SELECT * , SUM( ad.price ) AS venue_price
FROM venues AS v
JOIN services AS s ON v.id = s.serviceable_id
JOIN available_days AS ad ON s.id = ad.available_id
WHERE ad.available_type = 'Service'
AND s.type = 'basic'
AND ad.available =1
GROUP BY ad.day_of_week
HAVING venue_price < 500000
ORDER BY venue_price
LIMIT 1
选择*,总和(广告价格)作为场地价格
从场馆到v
在v.id=s.SERVIABLE\U id上以s的身份加入服务
在s.id=ad.available\U id上加入可用\u天作为广告
其中ad.available_type='Service'
和s.type='basic'
和ad.available=1
按广告日期分组
场地价格<500000
按场地价格订购
限制1
这是一把小提琴:
当我只有一个场地时,这是可行的,但问题是它应该得到所有场地,场地价格低于500000。如何让它只选择价格最低的可用天数条目,而不将其限制在一个地点?如果您需要金额最低的记录,请按
价格对其排序,并将限制设置为1
:
SELECT * , SUM( ad.price ) AS price
FROM venues AS v
JOIN services AS s ON v.id = s.serviceable_id
JOIN available_days AS ad ON s.id = ad.available_id
WHERE ad.available_type = 'Service'
AND s.type = 'basic'
AND ad.available = 1
ORDER BY price ASC
LIMIT 1
你能编辑你的问题并提供样本数据和期望的结果吗?或者,更好的是,设置一个SQL FIDLE。您的查询中没有GROUPBY子句,所以我认为您没有分组@kayakpim:我敢肯定Mysql会在您向选择列表添加聚合函数时执行隐式分组。至少在几年前我使用mysql时,它曾经是。我怀疑他们会改变这样一个基本特征。