2017-10-04 15 views
0

私は車のデータベースと価格ですべての可能な車のオプションがあります。私はオプションで車の検索をしたい。例:暖かい座席のある車が必要です。SQL - 最低価格を選択してください

SQLクエリに問題があります。私は車のオプションから最低価格を取得する必要があります。私のテーブルの "cars_options"にはオプションやパッケージ(クライマトトロニック、パーキングセンサー、パッケージ(パーキングセンサー、ヒートシート))があります。

パーキングセンサー付きの車をお探しの場合は、最低価格で駐車場のセンサーと

SQL Fiddle example

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

パッケージ内のオプションの表を見てください。

たとえばClimatronicなどのオプションにリンクする代わりに、単にクリマトロニックなパッケージにリンクするか、いくつかのオプションを持つパッケージにリンクします。

例: パッケージ:CarId、のPackageID、価格

オプション:OptionId、OptionNameは

PackageOptions のPackageIDは、Iパッケージの別のテーブルを有するにリンクの第二のそのアイデア

0

をOptionIdオプション。今のところこれが助けになるかもしれません(私があなたを正しく理解している場合)。

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 
関連する問題