我有两个表,产品和产品图像。 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
也会返回属于 no 的图像。产品,如果您由于某种原因有这样的产品。
关于php - 如何编辑我的查询,每个产品仅显示一张图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28015114/