首页 > 解决方案 > 从表中查询 Product 和 Product_Photo 有超过 1 张图片 只显示 1 张图片

问题描述

我有 2 个表,产品和 product_photo

product:
id     Title
1       Nike
2       Adidas
3       Piero

产品照片:

id    id_product   photo_path
1          1       /opt/A.png
2          1       /opt/B.png
3          2       /opt/C.png
4          3       /opt/D.png

这是查询

SELECT p.title, p.id FROM product p JOIN (
    SELECT id_product, photo FROM product_photo GROUP BY id_product,photo
    )pr on id_product = p.id;

通过查询我得到了结果:

Title     id_product    path
Nike        1            /opt/A.png
Nike        1            /opt/B.png
Adidas      2            /opt/C.png
Piero       3            /opt/D.png

我想要这样的最终结果只有 1 张图片,比如分组

Title     id_product        path
Nike        1            /opt/A.png
Adidas      2            /opt/C.png
Piero       3            /opt/D.png

任何线索,很难删除相同的数据?

标签: mysqlsql

解决方案


使用聚合函数

SELECT p.title, p.id,max(path)
FROM product p join product_photo pp on   p.id=pp.id_product
group by p.title, p.id

推荐阅读