2014-01-18 31 views
0

比较各种尺寸的我有以下几列一个简单的数据库表:查询从2列数据库

+-------+------+-------+-------+ 
|Product|Brand |minSize|maxSize| 
+-------+------+-------+-------+ 
|Prod1 |Brand1|50  |52  | 
+-------+------+-------+-------+ 
|Prod2 |Brand2|50  |51  | 
+-------+------+-------+-------+ 
|Prod3 |Brand3|45  |50  | 
+-------+------+-------+-------+ 

用户从列表中,然后在数据库中查询同类产品的首选产品基于minSize和maxSize。

如果用户选择Prod1,数据库表将由选定的minSize和maxSize查询,并且上述示例数据中的结果将包括Prod2和Prod3。

我在努力解决查询查找允许范围内的产品问题。任何人都可以指引我正确的方向或给我一个例子吗?我的SQL知识是有限的。

Shaun

+0

包括结果的标准是什么?他们在什么意义上“相似”? – Strawberry

回答

1

我知道你想要的产品有重叠的尺寸。你可以用join做到这一点:

select pb2.* 
from productbrand pb join 
    productbrand pb2 
    on pb.product = 'Prod1' and 
     pb2.product <> pb.product and 
     pb2.minsize <= pb.maxsize and 
     pb2.maxsize >= pb.minsize; 
+0

谢谢戈登,看起来会做的伎俩。非常感谢。肖恩 –