mysql。查询。选择

标签 mysql sql

有一个包含列的表格: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/

相关文章:

mysql - 为什么sql IN运算符无法正常工作?

c# - 我数据库中的所有数据都是更新的。如何只更新 1 行?

mysql - 无法使 mariadb 中的 select+update 事务自动执行

jquery - 如何使用 jquery 刷新后保持下拉菜单处于选中状态

即使相关行不存在,MySQL 也会进行 JOIN 吗?

php - 通过从两个表中获取值来更新 table1

java - 如何将 java 循环与 SQL 条件选择混合

php - 从数据库中获取最新条目

sql - 跨移动窗口计算字符串值

mysql - 如何更新同一个表上具有不同值的多个重复项?