在MySQL中获取顶级不同记录

在MySQL中获取顶级不同记录,mysql,Mysql,这可能很简单,所以请原谅我的金发时刻: 我有一张桌子“相册” * albumId * albumOwnerId (who created) * albumCSD (create stamp date) 现在我要做的是选择最近更新的前10张专辑。但是,我不希望同一个人的10张专辑回来——我只希望每个独特的人有一张专辑。即10张来自10个不同的人的专辑 这就是我下面所说的,但它不能正常工作,我就是不明白为什么。有什么想法吗 谢谢 SELECT DISTINCT(albumOwnerId), alb

这可能很简单,所以请原谅我的金发时刻:

我有一张桌子“相册”

* albumId
* albumOwnerId (who created)
* albumCSD (create stamp date)
现在我要做的是选择最近更新的前10张专辑。但是,我不希望同一个人的10张专辑回来——我只希望每个独特的人有一张专辑。即10张来自10个不同的人的专辑

这就是我下面所说的,但它不能正常工作,我就是不明白为什么。有什么想法吗

谢谢

SELECT DISTINCT(albumOwnerId), albumId
FROM album
ORDER BY albumCSD DESC
LIMIT 0,10
下面是一些示例数据,后面是我试图获取的数据。希望这能让事情更清楚

数据:

所需数据:

18, 194, '2010-10-23 11:02:30'
23, 193, '2010-10-22 11:39:59'
22, 192, '2010-10-12 21:48:16'
21, 181, '2010-10-12 20:34:11'
19, 168, '2010-10-12 18:31:55'
17, 145, '2010-10-10 18:54:24'
16, 130, '2010-10-10 16:17:57'
15, 119, '2010-10-10 15:24:28'
14, 100, '2010-10-09 18:22:49'
11, 98, '2010-10-09 15:50:13'
编辑:


我通过这个查询得到您想要的结果

SELECT albumOwnerID, albumId, albumCSD
FROM album
WHERE albumCSD in
(SELECT  Max(album.albumCSD) AS MaxvonalbumCSD
FROM album
GROUP BY album.albumOwnerID);

然而在MS Access中

对我来说太长了,但是。。。你试过groupby albumownerid吗?!你忘了20号唱片了吧@穆尔。正确-斑点很好。我手工编辑了想要的结果,一定是不小心跳过了20个!嗨,萨钦。那是行不通的。无论是否使用GROUPBY子句,它都会产生完全相同的结果。AlbumOwnerId不明显。@厚脸皮-同一个ownerID的albumID可以不同吗?如果是,请使用Group by albumOwnerID并从Group by中删除albumID这是我最初尝试的,但不正确,因为albumOwnerID返回的顺序错误。如果您尝试从select albumOwnerID中选择albumOwnerID,albumId来自AlbumOrder BY albumCSD DESC Group BY albumOwnerID LIMIT 0,10Hi Mur-该查询甚至不会执行。错误-每个派生表都必须有自己的aliasHi Mur-谢谢-这在MySql中运行良好,并提供了所需的结果!只需要订购DESC,但那没什么。谢谢!
select albumOwnerID, albumID
from album
Group by albumOwnerID, albumID
Order by albumcsd desc
LIMIT 0,10
select albumOwnerID, albumID 
from album
where albumOwnerID in (select distinct albumOwnerID from album order by albumCSD )
LIMIT 0,10
SELECT albumOwnerID, albumId, albumCSD
FROM album
WHERE albumCSD in
(SELECT  Max(album.albumCSD) AS MaxvonalbumCSD
FROM album
GROUP BY album.albumOwnerID);