我们现在正在为一个小型本地网站进行嵌入式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)
答案 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