【发布时间】:2011-06-14 01:55:52
【问题描述】:
我有四个如下表:
Cars:
car_id | make_id
1 | 1
2 | 3
Cars Makes
make_id | make_name
1 | BMW
2 | Ferrari
3 | Mercedes
Car Properties
car_id | property_id | property_value
1 | 1 | Automatic
1 | 2 | 1000
1 | 3 | Diesel
2 | 1 | Manual
2 | 2 | 15000
2 | 3 | Gasoline
Properties
property_id | property_name
1 | Transmission
2 | Mileage
3 | Fuel
如您所见,每辆车都有一个来自 "Makes" 表的 make_id。
还有一个单独的表格包含汽车的所有主要属性。 然后是“汽车属性”表,其中包含 car_id、property_id、property_value
现在我想进行以下查询: 买宝马自动变速箱,柴油里程1000。 假设表单可以提供以下内容: make_id = 1 (宝马) 属性=自动,1000,柴油
P.S: 如果我只得到结果 car_id 就可以了
【问题讨论】:
-
假设不同property_id 的property_value 值之间没有重叠(例如,没有Transmission 是“Gasoline”),那么您不需要该查询的Properties 表。 (P.S. 我没有投反对票;这是一个有趣的问题。)