0
我有三个表一个是产品和第二是appliedFeaturesValue,三是appliedFeaturesMySQL查询多对多关系
在产品表appliedFeaturesValue有多对多的关系。
ProductID appliedFeaturesValueId
1 1
1 2
2 1
3 2
并且在appliedFeaturesValue表中与appliedFeatures具有ManyToOne关系。
appliedFeaturesValue appliedFeaturesId
1 70
2 88
我想如果我使用IN子句则不会返回准确的产品数据,其中appliedFeaturesValue.id获得产品编号1,其中两个appliedFeaturesValue编号1和2是appliedFeaturesId 70可代表和88
= 1 AND appliedFeaturesValue.id = 2.
如果我使用AND子句,则找不到结果。
这是我与AND子句原始查询在没有结果发现: -
SELECT p0_ FROM Product p0_ INNER JOIN product_applied_features_value p2_ ON p0_.id = p2_.product_id INNER JOIN applied_features_value a1_ ON a1_.id = p2_.applied_features_value_id WHERE p0_.status = 1 AND a1_.applied_features_id = 70 AND a1_.applied_features_id = 88 ORDER BY p0_.id DESC
这是我的查询与IN子句: -
SELECT p0_ FROM Product p0_ INNER JOIN product_applied_features_value p2_ ON p0_.id = p2_.product_id INNER JOIN applied_features_value a1_ ON a1_.id = p2_.applied_features_value_id WHERE p0_.status = 1 AND a1_.applied_features_id IN (70,88) ORDER BY p0_.id DESC
我怎么会得到完全匹配的记录?
你可以用一些测试数据[在这里](http://sqlfiddle.com/)创建一个模式的例子并指定合适的输出吗? – Serg