Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 卡在选择查询上_Mysql_Sql - Fatal编程技术网

Mysql 卡在选择查询上

Mysql 卡在选择查询上,mysql,sql,Mysql,Sql,我想知道是否有人能帮我解答一个我一直在苦苦思索的问题 我有两张桌子: 价格和访客 价格: 在本表中,第一列表示0-4、4-12、12-80岁年龄组及其相应的价格 年龄组 0 4. 12 八十 价格 0 5. 20 十五 访客: 名字 辛迪 鲍勃 生日 2001-01-28 1958-03-01 我想让一份精选声明告诉我访客的名字和他们必须支付的价格 所以我可能需要类似的东西来了解他们的年龄: yearcurdate-yearvisitors.BirthDate 然后我猜我也需要这样的东西: 其中

我想知道是否有人能帮我解答一个我一直在苦苦思索的问题

我有两张桌子:

价格和访客

价格:

在本表中,第一列表示0-4、4-12、12-80岁年龄组及其相应的价格

年龄组

0 4. 12 八十

价格

0 5. 20 十五

访客:

名字

辛迪 鲍勃

生日

2001-01-28 1958-03-01

我想让一份精选声明告诉我访客的名字和他们必须支付的价格

所以我可能需要类似的东西来了解他们的年龄:

yearcurdate-yearvisitors.BirthDate

然后我猜我也需要这样的东西:


其中maxPrices.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

这是给你的。

有两种可能:在年龄组列中指定最低年龄。计算实际年龄。年龄组是指最高最低年龄小于或等于实际年龄的组。在答案中添加了一个查询,似乎有效。我不会使用您的表达式来获取年龄。有闰日之类的事情。好吧,你有什么建议吗。我不介意几天左右,但我认为这个表达式会起作用:DATE\u FORMATFROM\u DAYSDATEDIFFNOW,birthdate,%y现在固定查询以处理闰年。[链接]你太快了。我今天在SO提出了同样的算法。不,我是指上面的算法。我们不同步:-我删除了可能被误解的评论。