MYSQL新秀在这里,所以请耐心等待。
我有一个名为Cars
的表,用于存储有关汽车的数据:
我有一张名为priority
的表格,可以按0-5的比例存储每辆车的特征对我的重要性。所以这个表可能看起来像:
+-----+-------+-------+
| MPG | Price | Seats |
+-----+-------+-------+
| 0 | 2 | 3 |
+-----+-------+-------+
我希望能够为每个Car
生成一个得分,如下所示:
score = (car.MPG * priority.MPG) + (car.Price * priority.Price) + (car.seats * priority.seats)
我想基本上做Select * from cars order by score
。但我不确定如何形成这个查询。
非常感谢帮助。
答案 0 :(得分:1)
尝试使用
select a.* from cars a, priority b order by ((a.mpg* b.mpg)+(a.price*b.price)+(a.seats*b.seats))
答案 1 :(得分:0)
您必须将main select包装到另一个包含order子句的select中。像这样:
SELECT * FROM (SELECT c.*, ((c.MPG * priority.MPG) + (c.Price * priority.Price) + (c.seats * priority.seats)) AS score FROM cars) x ORDER BY x.score