提问者:小点点

查询以比较数据库中从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知识有限。

肖恩


共1个答案

匿名用户

我的想法是你想要的产品有重叠的尺寸。您可以使用联接来完成此操作:

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;