我有两个表,产品和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
如何为每个产品仅显示一张图片(第一张)?
如果您可以使用字典顺序最小的图像名称,则此查询将起作用:
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
也会返回不属于任何产品的图像。