如何编辑我的查询每个产品只显示一个图像?

时间:2015-01-18 21:39:57

标签: php mysql

我有两张桌子,产品和product_images。 Product_images包含每个产品的图像条目。每种产品都有很多图像。

我正在使用以下SQL查询,但是我想每个产品只显示一个图像。现在,每个产品的条目数量与图像数量相同。

为此,我将展示很多产品,例如所有类别的产品,而不是单一产品。

select products.product_id, product_images.image,
       products.name, products.description
from product_images
left join products on products.product_id = product_images.product_id 
where products.category_child= 1

如何只为每个产品展示一张图片(第一张)?

1 个答案:

答案 0 :(得分:0)

如果您使用按字典顺序排列的最小图像名称,那么此查询将起作用:

select products.product_id,  MIN(product_images.image), products.name, products.description 
from product_images 
     left join 
     products 
     on products.product_id = product_images.product_id 
where products.category_child= 1 
group by products.product_id

此外,您可能希望在此使用INNER JOIN而不是LEFT JOIN,因为LEFT JOIN也会返回属于非产品的图片,如果您出于某种原因有这样的话。