需要一个MySQL查询来从存储键值对的表中选择
我需要以键值对的形式在数据库(mySQL)中存储一些项目及其属性。我正计划如下。
我将使用两个表items
和item_properties
。
items
itemId | 项目名称-------------------
1923年| 交流电
1235 | 冰箱
8273 | 电暖器
item_properties
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');
我想知道如何编写查询以选择与多个属性匹配的项目,例如
- 选择“效果”为“冷却”且“消耗”为“有效”的所有项目(与“ AC”项目匹配)。
- 选择所有“类型”为“ split”或“ heatMethod”为“ coil”或“ consumption”为“ effecient”的物品(将与“ AC”和“ Heater”物品匹配)。
请帮助…预先感谢!
回答:
这是查询示例:
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
。
以上是 需要一个MySQL查询来从存储键值对的表中选择 的全部内容, 来源链接: utcz.com/qa/416069.html