0
我有一个名为产品表,并呼吁ProductProperty子表:匹配在子表多行与MySQL
Product(Product_id, productName,...)
ProductProperty(id, propertyKey, propertyValue, Product_id)
因此,一个产品可以有多个相应ProductProperty行。
现在我想查询一些内容:'选择所有产品行的属性宽度= 12和高度= 35'。对于这个特定的例子,我提出了以下查询,该查询可行,但我觉得我可能缺少一个好的解决方案。
SELECT Product.Product_id from Product
WHERE
EXISTS (SELECT * FROM ProductProperty WHERE propertyKey='width' AND propertyValue='12' AND ProductProperty.Product_id = Product.Product_id)
AND
EXISTS (SELECT * FROM ProductProperty WHERE propertyKey='height' AND propertyValue='35' AND ProductProperty.Product_id = Product.Product_id);
有没有明显更好的实现,我在这里失踪?
谢谢。最后一个似乎没有给出正确答案,但第一个查询是我要使用的,谢谢。 –
我编辑了我的答案。第二个应该现在工作。 – shmosel
是的,现在也行得通,在我选择使用第二种解决方案之后, –