我想知道是否有人可以帮助我解决一直困扰的查询。
我有2张桌子:
价格和访客
价格:
在此表中,第一列代表年龄组(0-4、4-12、12-80)及其相应的价格
年龄阶层
0
4
12
80
价钱
0
5
20
15
访客:
名称
辛迪
鲍勃
生日
2001-01-28
1958-03-01
我想要一个选择语句,向我显示访客的姓名和他们必须支付的价格。
因此,我可能需要与此类似的东西才能达到年龄:
year(curdate())-year(visitors.BirthDate)
然后我猜我也需要这样的东西:
其中max(Prices.AgeGroup)
不幸的是,这就是我所困扰的地方,我已经从事此工作已经有一段时间了,但是我仍然无法创造出理想的结果。
无论如何,如果有人可以帮助我,我将非常感激。 :)
最佳答案
您可以使用此查询。
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。