php - 如何编辑我的查询,每个产品仅显示一张图片?

标签 php mysql

我有两个表,产品和产品图像。 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/

相关文章:

javascript - 使用 stripe API 从 stripe token 获取费用金额

mysql - 当没有可用值时,如何使用 mysql 查询显示空字段?

c# - LINQ Group By 多列并进行计数

javascript - 当查询使用 SQL 变量时 Mysqli PHP 准备好的语句

php - 我无法使用 AJAX (XMLHttpRequest) 获取 responseXML

python - CSV 中列的灵活顺序以及应用程序中项目的硬编码显示

mysql - Docker 数据库容器正在运行。 pid <id> 的另一个进程正在使用 unix 套接字文件

mysql - SQL Order by 子句不按字母顺序返回

php - Magento 的 Cron 从根本上有缺陷吗?

php - Laravel 5.5 更改未经身份验证的登录重定向 url