【发布时间】:2014-01-06 11:53:58
【问题描述】:
嗨,这是我的桌子
表 1 => 产品
id product price active
3 sample 1500 1
4 sample2 2300 2
表 2 => product_attibute_value
id product option_value
1 3 Green
2 3 Red
和表 3 => product_attribute_options
id product option_value
1 2 8
2 2 7
我的查询是
SELECT typ.*
FROM products typ , attibute_value tyav
WHERE typ.active='1' AND ( tyav.option_value = 'Green' ) AND typ.id=tyav.product
GROUP BY typ.id
ORDER BY typ.price ASC
这工作正常。现在我也想添加 product_attribute_options 表。
现在我添加了这样的新查询
SELECT typ.*
FROM products typ , attibute_value tyav, product_attibute_options tyop
WHERE typ.active='1' AND ( tyav.option_value = '7' OR tyav.option_value = 'Orange' ) OR
( tyav.option_value = '7' OR tyav.option_value = 'Orange' ) AND
typ.id=tyav.product OR typ.id=tyop.product
GROUP BY typ.id
ORDER BY typ.price ASC
我在一页中显示选项值,如果我选择此选项(如 8 或橙色),它将显示产品。这个产品应该来自attribute_options 表和attribute_value 表。
它并不完全正确。我在这个查询中做错了什么?提前致谢
【问题讨论】:
标签: mysql sql select join where-clause