首先,我想为我的糟糕英语道歉。我有多个表的问题。 我并不是mySQL世界中的新手,但我无法找出解决这个问题的方法。 对于这个问题我使用4个表格。Mysql JOIN多个表并选择多个值
- 分类
- 产品
- 规格
- Specificationvalues
每个类别都有规格和产品,每specificationvalues拥有的产品和规范的ID。 现在用户可以使用不同的值进行选择。 这是我的问题所在。 当用户选择价值“绿色”和腿“4”我想要所有4条腿的绿色产品。 所以我用一个JOIN(各种我认为)来选择合适的产品(如下所示)
SELECT DISTINCT products.id
FROM products
LEFT JOIN specificationvalues ON specificationvalues.products_id = products.id
LEFT JOIN specifications ON specificationvalues.specifications_id = specifications.id
WHERE specifications.name='materiaal'
AND specifications.name='kleur'
AND specificationvalues.id='77'
AND specificationvalues.id='78'
的问题是,所有的值都在不同的行。这就是为什么WHERE不起作用。我没有得到MySQL错误。只有它返回0行。
我希望有人能帮助我!我从这个论坛得到了很多好东西,所以我希望它能帮助我!
我不知道为什么我的改动昨天没有保存。但这里是我的数据再次:
SPECIFICATIONS Table
ID CATEGORIES_ID NAME
38 297 Material
39 297 Measures
40 297 Color
SPECIFICATIONVALUES Table
ID SPECIFICATIONS_ID PRODUCTS_ID VALUE
1 38 988979 Masive wood
2 39 988979 24x57x98
3 40 988979 Yellow
4 40 988980 Black
5 39 388980 24x57x98
PRODUCTS Table
ID NAME
988979 Table
988980 Chair
所以现在我想所有黑色prducts与措施24x57x98。我希望你可以帮助我!
您的天才!感谢您的帮助DRapp!这就是解决方案 – raice
@ user1456684,作为一个新手,当你有一个问题并得到一个解决方案时,向提供解决方案的人提供一个解决方案来检查它,并在答案旁边打上复选标记。这告诉其他人你的问题已经解决了,什么答案有效。这有助于未来可能会遇到类似问题的其他人以及可能对他们有用的DID。 – DRapp
我很抱歉,但仍然有一个问题。当我选择2个值时,我仍然得到匹配2个值中的1个的产品。甚至当我使用AND时。 – raice