我有一个简单的数据库表,其中包含以下列:
+-------+------+-------+-------+
|Product|Brand |minSize|maxSize|
+-------+------+-------+-------+
|Prod1 |Brand1|50 |52 |
+-------+------+-------+-------+
|Prod2 |Brand2|50 |51 |
+-------+------+-------+-------+
|Prod3 |Brand3|45 |50 |
+-------+------+-------+-------+
用户从列表中选择产品,然后根据minSize和maxSize查询数据库中的类似产品。
如果用户选择了Prod1,则所选的minSize和maxSize将查询数据库表,上面示例数据中的结果将包括Prod2和Prod3。
我很难弄清楚查询是否在允许的范围内找到产品。有人能指出我正确的方向还是举个例子?我的SQL知识有限。
肖恩
答案 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;