Mysql 如何在表的第一行进行内部联接

Mysql 如何在表的第一行进行内部联接,mysql,sql,Mysql,Sql,我有以下疑问: SELECT p.`id` , p.`name` , pp.`name` FROM `product` p INNER JOIN `product_picture` pp ON p.id = pp.product_id 然后我得到了以下结果: 然而,我只想为每一个项目得到一张产品图片(这是顶部的第一张)。所以我想得到一个返回: 7 Glavins Necklace 83081c5619068f6ec700e12d827d2199745c8283.jpe

我有以下疑问:

   SELECT p.`id` , p.`name` , pp.`name` 
FROM  `product` p
INNER JOIN  `product_picture` pp ON p.id = pp.product_id
然后我得到了以下结果:

然而,我只想为每一个项目得到一张产品图片(这是顶部的第一张)。所以我想得到一个返回:

7     Glavins Necklace   83081c5619068f6ec700e12d827d2199745c8283.jpeg
8     Woodsie Bracelet   83081c5619068f6ec700e12d827d2199745c8283.jpeg
如何操作?

使用聚合
MIN()
MAX()
选择一张图片

SELECT p.`id` , p.`name` , MIN(pp.`name`) picture
  FROM  `product` p INNER JOIN  `product_picture` pp 
    ON p.id = pp.product_id
 GROUP BY p.`id` , p.`name`

你如何识别头像?你真的希望两个id的图片都是一样的吗?@Goat_CO所以最上面的图片基本上就是产品id最小的图片为什么我需要最小的图片?我试着删除min,结果成功了,只需添加groupbysince MySql就可以指定一个列,它不是
groupby
的一部分,您可以忽略它。但是其他“普通”RDBMS不允许您这样做,因为不清楚RDBMS应该选择组中的哪一行?使用
MIN()。请在此处阅读更多相关内容和次要内容,但将MIN(pp.
name
)作为图片引用是没有用的?因为结果集中有两列名称相同的
name
,最好给出其中一列(或两列)显式名称(别名)。