2015-09-07 19 views
0

如果我有,例如这2个表: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对每一类别的值会每个月进行修订,所以它会改变......我如何查询table1与table2的关系,以便它将采用该项目的该类别的minimum_rating的值,并仅返回table1中具有等于或大于minimu的评级的项目米评价?在这种情况下,查询将有望回归:

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

非常感谢您的knowleadgeable输入!

回答

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; 
+0

非常感谢你拉胡尔和@ kl78因为这两个答案的几乎张玉峰和正确的。我认为stackoverflow强制接受只有一个为“最正确的”,因为他保留了示例中给出的列命名,并在10秒之前发布了答案;-) – dodecafonico

1

一个简单的加入应该做的工作:

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