我想知道是否有人可以帮助我查询我一直在努力的问题。
我有两张桌子:
价格&访问者
价格:
在此表中,第一列代表年龄组(0-4,4-12,12-80)及其相应的价格
AgeGroup
0
4
12个
80
价格
0
5
20个
15
访问者:
名称
辛迪
鲍勃
出生日期
2001年1月28日
1958年3月1日
我希望有一个选择语句向我显示访问者的姓名以及他们必须支付的价格。
所以我可能需要类似于此的东西来获得他们的年龄:
年(curdate()) - 年(visitor.BirthDate)
然后我猜我也需要这样的东西:
其中max(Price.AgeGroup)< = year(curdate()) - 年(visitor.BirthDate)
不幸的是,在我被困的地方,我已经有很长一段时间了,但我还没有能够创造出所需的结果。
无论如何,如果有人能帮助我,我非常感激。 :)
答案 0 :(得分:0)
您可以使用此查询。
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给你的。