【问题标题】:SQL - select the lowest priceSQL - 选择最低价格
【发布时间】:2018-03-16 01:24:58
【问题描述】:

我有汽车数据库和所有可能的汽车价格选项。我想通过选项进行汽车搜索。例如:我需要一辆带加热座椅的汽车。

我的 SQL 查询有问题。我需要从汽车选项中获得最低价格。在我的表“cars_options”中有选项和包,例如(climatronic,停车传感器,包(停车传感器,加热座椅)。

当我们寻找带有停车传感器的汽车时,查询应该返回所有带有停车传感器的汽车或最低价格的带有停车传感器的包。

SQL Fiddle example

电子气候:

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

最大的问题是包裹,我不知道如何检查哪个更便宜或更贵。

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    从外观上看,您需要一个包中的选项表。

    而不是链接到选项,例如 Climatronic,而是链接到一个只是 climatronic 的包,或者一个有多个选项的包。

    例如 包裹:CarId、PackageId、价格

    选项:OptionId、OptionName

    包选项 PackageId,OptionId

    【讨论】:

      【解决方案2】:

      我支持为包创建一个单独的表并将它们链接到选项的想法。现在可能这会有所帮助(如果我理解正确的话。)

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-05
        • 2014-01-05
        • 2013-01-14
        • 2014-11-13
        • 2016-01-26
        • 2016-03-18
        • 2018-04-26
        相关资源
        最近更新 更多