SQL查询返回行的值,该列的值高于某个最小值,具体取决于类别?

时间:2015-09-07 14:52:48

标签: 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

和table2:

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

并考虑到每个类别的值minimum_rating将每月修订,因此它会改变...我如何查询table1与table2的关系,以便它将取得该类别的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

非常感谢您的知识输入!

2 个答案:

答案 0 :(得分:1)

我认为您需要在表格中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;

答案 1 :(得分:1)

简单的联接应该可以胜任:

Select a.* from table1 as a
 inner join table2 as b on a.furniture = b.furniture and a.rating >=     b.minimum_rating;