我有汽车和所有可能的汽车选择与价格的数据库。我想按选项进行汽车搜索。例如:我需要一辆有加热座位的车。
我有一个关于SQL查询的问题。我需要从汽车选项中获得最低价格。在我的表"cars_options“中有选项和套餐,例如(气候式,停车传感器,套餐(停车传感器,加热座椅)。
当我们寻找带有停车传感器的汽车时,查询应该返回所有带有停车传感器的汽车或带有停车传感器的最低价格的包。
SQL Fiddle example
气候学:
VW Passat | 1000 // package with climatronic is too expensive
VW Golf| 1000 // package with climatronic is too expensive停车传感器和气候电子学
VW Passat | 1400 // climatronic + parking sensor is too expensive (1500), package is cheaper
VW Golf| 1400 // golf has parking sensor only in package最大的问题是包,我不知道如何检查哪些更便宜,哪些更贵。
发布于 2017-10-04 23:33:27
从外观上看,您需要一个表来显示包中的选项。
而不是链接到选项,例如,链接到一个仅仅是气候学的包,或者一个有几个选项的包。
例如套餐: CarId、PackageId、价格
选项: OptionId、OptionName
PackageOptions PackageId,OptionId
发布于 2017-10-04 23:56:49
我赞同为包建立一个单独的表并将它们链接到选项的想法。就目前而言,这可能会有所帮助(如果我理解正确的话)。
SELECT c. name as "CAR", co.name "OPTION", co.price FROM CARS c
INNER JOIN CARS_HAS_OPTIONS cho ON c.id = cho. id_car
INNER JOIN CARS_OPTIONS co ON co.id = cho. id_car_option
WHERE co.name LIKE '%Parking sensor%'
ORDER BY PRICE ASChttps://stackoverflow.com/questions/46568449
复制相似问题