我有汽车数据库和所有可能的汽车选择价格。我想通过选项进行汽车搜索。例如:我需要一辆带加热座椅的汽车。
我的SQL查询有问题。我需要从汽车选项中获得最低价格。在我的表“cars_options”中有选项和包装,例如(climatronic,停车传感器,包装(停车传感器,加热座椅)。
当我们寻找带停车传感器的汽车时,查询应该返回所有带停车传感器的汽车或带有最低价格的停车传感器的包裹。
的Climatronic:
VW Passat | 1000 // package with climatronic is too expensive
VW Golf| 1000 // package with climatronic is too expensive
停车传感器和Climatronic
VW Passat | 1400 // climatronic + parking sensor is too expensive (1500), package is cheaper
VW Golf| 1400 // golf has parking sensor only in package
最大的问题是包裹,我不知道如何检查更便宜或更贵的东西。
答案 0 :(得分:0)
根据它的外观,您需要一个包含选项的表格。
而不是链接到选项,例如Climatronic,链接到一个只是climatronic的包,或者有几个选项的包。
E.g 包裹:CarId,PackageId,价格
选项:OptionId,OptionName
PackageOptions 包ID,OptionId
答案 1 :(得分:0)
我的想法是为包提供一个单独的表并将它们链接到选项。现在可能会有所帮助(如果我理解正确的话。)
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 ASC