查询价格接近输入价格的笔记本电脑的数据库

时间:2012-05-16 15:08:35

标签: mysql

我们现在正在为一个小型本地网站进行嵌入式mysql查询。我想知道如何进行此查询“询问用户价格并找到价格最接近所需价格的PC。打印制造商,型号和PC的速度。”

如何找到价格最接近用户输入价格的电脑? 我知道我需要在产品和电脑之间进行自然的连接,这些都是基于这些内容的

SELECT maker, model, speed FROM 
(SELECT * FROM product NATURAL JOIN pc) AS t1 
WHERE price (is close to) '$p';

关系:

product(maker, model, type(pc, printer, laptop))
pc(model, price, speed, ram, hd size)

3 个答案:

答案 0 :(得分:1)

通过获取价格并减去输入的价格来创建偏移量变量。将其设为绝对值(无负值),然后按此顺序并限制

SELECT product.maker, pc.model, pc.speed, ABS(pc.price - '$p') AS offset FROM pc LEFT JOIN product ON pc.model=product.model ORDER BY offset ASC LIMIT 1

答案 1 :(得分:0)

SELECT maker, model, speed FROM 
( SELECT model FROM pc NATURAL JOIN product )
WHERE price
BETWEEN value1 AND value2;

答案 2 :(得分:0)

您还没有提供非常好的架构信息,因此我假设表格在模型列上加入。

select p.maker, pc.model, pc.speed
from product p
inner join pc on p.model = pc.model
order by abs(pc.price - '$p')
limit 10

另外,我不知道如何从结果列表中删除您要比较的产品。它可能是这样的:

select p.maker, pc.model, pc.speed
from product p
inner join pc on p.model = pc.model
where pc.model <> '$model'
order by abs(pc.price - '$p')
limit 10