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)
这有意义吗?谁能帮我找出我的问题?
像这样的东西会起作用,尽管你必须检查它是否有错别字。
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)