SQL 查询联接将结果限制为每个 ID 一个项目

Bri*_*son -1 mysql sql join greatest-n-per-group

所以我有 2 张桌子......产品和图片

Products 
---------
id
value1
value2
value3
etc..

Images
---------
id
productId
imageName
Run Code Online (Sandbox Code Playgroud)

图像表每个产品将有多个图像,因此当我运行此查询时:(!= 0 是因为某些图像没有 productId 所以我想排除它们,不确定是否有更好的方法处理那个,或者如果我什至需要包括那个)

select p.*, i.imageName 
from products p, images i 
where p.id = i.productId and i.productId != 0 
Run Code Online (Sandbox Code Playgroud)

我得到了结果,但它给了我多个条目,我只想要每个产品一个结果,我希望它提取第一个添加的图像(所以是最旧的)......

目前的结果是这样的---

id : 1
imagename: name1.jpg

id : 2
imagename: name5.jpg

id: 2
imagename: name6.jpg

id: 2
imagename: name7.jpg

id: 3
imagename:  name3.jpg

etc... etc... 
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样......

id: 1
imagename: name1.jpg

id: 2
imagename: name5.jpg

id: 3
imagename: name 3.jpg
Run Code Online (Sandbox Code Playgroud)

这有意义吗?谁能帮我找出我的问题?

Bri*_*ver 5

像这样的东西会起作用,尽管你必须检查它是否有错别字。

SELECT p.*,
       (SELECT i.imageName
          FROM images
         WHERE i.productId = p.id
        ORDER BY i.date_created ASC
         LIMIT 1)
          AS imageName
  FROM products p
Run Code Online (Sandbox Code Playgroud)