我想知道是否有人可以帮助我解决我一直在努力解决的问题。
我有 2 个表:
价格和访客
价格:
在此表中,第一列代表年龄组(0-4、4-12、12-80)及其相应的价格
年龄组
0
4
12
80
价格
0
5
20
15
访问者:
名称
辛迪
鲍勃
出生日期
2001-01-28
1958-03-01
我希望有一个选择语句向我显示访问者的姓名以及他们必须支付的价格。
所以我可能需要类似的东西来获取他们的年龄:
年份(curdate()) - 年份(visitors.BirthDate)
然后我猜我也需要这样的东西:
其中 max(Prices.AgeGroup) <= 年(curdate()) - 年(visitors.BirthDate)
不幸的是,这就是我陷入困境的地方,我已经做了很长一段时间了,但我仍然无法创建所需的结果。
无论如何,如果有人能向我伸出援助之手,我将非常感激。 :)
最佳答案
您可以使用此查询。
SELECT
visitors.name, visitors.birthdate, DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(birthdate, '%Y') - (DATE_FORMAT(NOW(), '00-%m-%d') < DATE_FORMAT(birthdate, '00-%m-%d'))
AS age, (select price from prices where age_group < age order by age_group desc limit 1) as price
FROM
visitors
这是SQLFiddle为你。
关于mysql - 卡在选择查询上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944798/