首先,我想为我糟糕的英语道歉。我有多个表的问题。我在 mySQL 世界中并不完全是新手,但我无法找到解决此问题的方法。对于这个问题,我使用 4 个表。
- 类别
- 产品
- 规格
- 规格值
每个类别都有规格和产品,每个规格值都有产品和规格 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
所以现在我想要所有尺寸为 24x57x98 的黑色产品。我希望你能帮帮我!