查询以比较数据库中2列的大小范围

时间:2014-01-18 14:49:45

标签: mysql sql

我有一个简单的数据库表,其中包含以下列:

+-------+------+-------+-------+
|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 个答案:

答案 0 :(得分: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;