我需要以键值对的形式在数据库(mySQL)中存储一些项目及其属性。我正计划如下。
我将使用两个表items和item_properties。
items
item_properties
itemId | 项目名称 ------------------- 1923年| 交流电 1235 | 冰箱 8273 | 电暖器
itemId | 物业| 值 -------------------------------- 1923年| 效果| 冷却 1923年| 消费 有效率的 1923年| 类型 分裂 1235 | 效果| 冷却 1235 | 数量 20升 8273 | 效果| 加热 8273 | 消费 有效率的 8273 | heatMethod | 线圈
现在,如果我必须选择“效果”为“冷却”的项目,则可以使用以下查询进行操作(结果将为我提供“ AC”和“冰箱”)。
从项目i,item_properties p中选择itemName 在哪里i.itemId = p.itemId AND(p.property ='effect'AND p.value ='cooling');
我想知道如何编写查询以选择与多个属性匹配的项目,例如
请帮助…预先感谢!
这是查询示例:
SELECT itemName FROM items i, JOIN item_properties effect ON i.itemId = effect.itemId AND effect.property = 'effect' JOIN item_properties consumption ON i.itemId = consumption.itemId AND consumption.property = 'consumption' WHERE effect.value = 'cooling' AND consumption.value = 'efficient';
我将把oR查询留给您自己尝试的东西。它只是增加更多的表格和使用OR,而不是AND在WHERE。
oR
OR
AND
WHERE