有一个包含列的表格:id、artist、title、album。 我需要获取具有不同值对(艺术家、标题)和专辑的行
例子:
我现在有(我的查询结果):
===艺术家=======标题=========专辑
一些艺术家 1 === 歌曲名称 1 === 第一张专辑
一些艺术家 1 === 歌曲名称 1 === 第二张专辑
some artist1 === song title 1 === 第三张专辑
我需要:
===艺术家=======标题=========专辑
some artist1 === song title 1 === first album
最佳答案
SELECT t.*
FROM (
SELECT DISTINCT artist, title
FROM mytable
) td
JOIN mytable t
ON t.id =
(
SELECT id
FROM mytable ti
WHERE (ti.artist, ti.title) = (td.artist, td.title)
ORDER BY
ti.artist, ti.title, ti.id
LIMIT 1
)
这将以 id
顺序返回给定 (artist, title)
的第一个 album
。
更改子查询中的 ORDER BY
条件以控制将返回哪个专辑。
关于mysql。查询。选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5703243/