mysql - SQL 查询返回列值高于某个最小值(具体取决于类别)的行?

标签 mysql sql

如果我有例如这两个表:

表1:

item       category     rating
------     --------     ------
table      furniture      6
chair      furniture      5
sofa       furniture      7
bed        furniture      4
apple      food           7
banana     food           6
spinach    food           9
almonds    food           8
happiness  feeling        7
compassion feeling        6
love       feeling        8
admiration feeling        7

和表2:

category     minimum_rating
--------     --------------
furniture          6 
food               8
feeling            7

并且考虑到每个类别的minimum_ rating值每个月都会修改,所以它会改变...我如何查询与table2相关的table1,以便它将采用该类别的minimum_ rating值item 并仅返回 table1 中评级等于或高于最低评级的那些项目?在这种情况下,查询预计返回:

item       category     rating
------     --------     ------
table      furniture      6
sofa       furniture      7
spinach    food           9
almonds    food           8
happiness  feeling        7
love       feeling        8
admiration feeling        7

非常感谢您的宝贵意见!

最佳答案

我认为您需要在两个表上进行JOIN,如下所示。您也可以说 t1. rating = t2.minimum_ rating

select t1.*
from table1 t1 join table2 t2 on t1.category = t2.category
where t1.rating >= t2.minimum_rating;

关于mysql - SQL 查询返回列值高于某个最小值(具体取决于类别)的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32441423/

相关文章:

sql - 执行SQL中只存在一个

mysql - 如何选择给定日期的计算范围值?

mysql - 对两个字段的数据进行排序

php - 如何在$text中插入广告?

mysql - 数据库触发器 - 当更新行中的字段等于三个值之一时,更新另一个表

CREATE TRIGGER 附近的 MySQL 触发器语法错误

php - 大字段的 SQL UPDATE 问题

MySQL-获取一个会计年度内每月的金额总和

用于复制数据库及其所有表的 PHP 脚本

java - 使用jsp将图像从html上传到mysql数据库