我有一个简单的数据库表,它包含以下列:
+-------+------+-------+-------+
|Product|Brand |minSize|maxSize|
+-------+------+-------+-------+
|Prod1 |Brand1|50 |52 |
+-------+------+-------+-------+
|Prod2 |Brand2|50 |51 |
+-------+------+-------+-------+
|Prod3 |Brand3|45 |50 |
+-------+------+-------+-------+
用户从列表中选择一个产品,然后根据minSize和MaxSize查询数据库中的类似产品。
如果用户选择Prod1,则将通过所选的minSize和maxSize查询数据库表,并且上面示例数据中的结果将包括Prod2和PROD3。
我正在努力确定查询是否在允许的范围内找到产品。谁能给我指出正确的方向或者给我举个例子吗?我的SQL知识有限。
肖恩
我的想法是你想要的产品有重叠的尺寸。您可以使用联接
来完成此操作:
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;