gpt4 book ai didi

MySQL获取组中连接表的第一行

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:23 25 4
gpt4 key购买 nike

我有一个简单的一对多关系。一个表是相册列表,另一个表是照片列表。每张照片只能属于一个相册,但一个相册包含很多张图片。

现在我想在一次查询中获得所有专辑的列表。我想要的信息是相册本身的一些值(比如相册的名称)、相册中的图像总数和第一张图像的一些值。

我已经有了图像总数和相册名称,但我在尝试获取第一张图像值时遇到了一些问题。

SELECT albums.id, albums.name, COUNT(photos.id) AS imageCount 
FROM albums
LEFT JOIN photos ON albums.id = photos.albumid
GROUP BY name
ORDER BY id DESC

我尝试了 other 中的几种方法answers但我似乎做错了什么。这特别令人困惑,因为我也在使用 COUNT()

我创建了一个 sqlfiddle其中包含此查询以及一个小型示例数据库。那么如何获取照片第一个元素的一些值呢?

最佳答案

SELECT x.id
, x.name
, total
, y.id
, y.url
FROM
( SELECT a.*
, COUNT(p.id) total
, MIN(p.id) min_id
FROM albums a
LEFT
JOIN photos p
ON p.albumid = a.id
GROUP
BY a.id
) x
LEFT
JOIN photos y
ON y.id = x.min_id;

关于MySQL获取组中连接表的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34929392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com