mysql - 卡在选择查询上

标签 mysql sql

我想知道是否有人可以帮助我解决我一直在努力解决的问题。

我有 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/

相关文章:

mysql - 如何使用MySQL合并SQL语句的结果

javascript - 转义 MySQL 数据以输出到 JSON 的最佳方法是什么?

sql - Oracle SQL 中的自定义顺序

sql - Postgresql:对 2 列联合的唯一约束

SQL Server 2008 查询查找列中包含非字母数字字符的行

sql - 如何封装语句并在 Order by Clause 中使用

.net - VB .NET SQL 删除查询不起作用

php - Zend Framework - 本地主机上的 utf8 正常 - 网络服务器上的 utf8 失败

mysql - MySQL 中的 '2018-03-22 00:00:00"有什么问题?

php - UTF-8、PHP 和 XML Mysql