我有两个表,其中包含产品信息和产品变体。我在试着列出所有的产品,还有颜色的变化。
表products包含有关产品的常规信息(名称、说明、已启用等)。
表product_attributes包含产品的不同选项(颜色、大小、价格等)
我正在尝试获取所有可用的产品,如果产品有两种颜色,它应该显示为两个列表。不幸的是,我下面的查询列出了更多的选项,因为每个大小组合也会有一行。
SELECT pa.price, pa.color, p.id, p.url_key, p.name FROM product_attributes AS pa INNER JOIN products AS p ON pa.product_id = p.id && p.active = 1有谁知道如何做到这一点,最好和最聪明的方式?
我希望你能理解我的问题
提前谢谢你,
致以问候!
id mediumint(7) NO PRI NULL auto_increment
type tinyint(3) NO 1
url_key varchar(54) NO NULL
name varchar(48) NO NULL
description text NO NULL
weight float NO 0
active tinyint(3) NO 0
in_feed tinyint(3) NO 0
tax_class tinyint(3) NO 0
meta_title varchar(48) NO NULL
meta_keywords varchar(48) NO NULL
meta_description text NO NULL
manage_stock tinyint(3) NO 0
attribute_designers_id mediumint(7) NO 0
attribute_size_family_id mediumint(7) NO 0
id mediumint(7) NO PRI NULL auto_increment
product_id mediumint(7) NO MUL NULL
sku varchar(48) NO NULL
price float NO NULL
special_price float NO 0
special_price_from_date datetime NO NULL
special_price_to_date datetime NO NULL
cost float NO 0
new_from_date datetime NO NULL
new_to_date datetime NO NULL
attribute_colors_id mediumint(7) NO NULL
color varchar(24) NO NULL
attribute_sizes_id mediumint(7) NO NULL
quantity mediumint(7) NO 0发布于 2010-12-24 07:19:42
您需要通过以下方式添加群组:
SELECT pa.price, pa.color, p.id, p.url_key, p.name
FROM product_attributes AS pa
INNER JOIN products AS p
ON pa.product_id = p.id && p.active = 1
GROUP BY p.id, pa.color注意,您的列pa.price在这里可能没有意义,因为价格几乎肯定取决于大小,但您不知道价格是针对哪个大小的。
https://stackoverflow.com/questions/4523154
复制相似问题