MySQL多表查询排序

编程入门 行业动态 更新时间:2024-10-17 09:41:26

<a href=https://www.elefans.com/category/jswz/34/1771279.html style=MySQL多表查询排序"/>

MySQL多表查询排序

最近看到一个面试题,是关于mysql的多表查询并排序分组的
题目如下:
Music表包含所有歌曲信息,每首歌曲尤其对应的Id,Name,Year和Singer Id。
+----+---------+--------+-----------+

+----+---------+--------+-----------+

Singer表包含所有歌手信息
+----+----------+

+----+----------+

请编写一个SQL查询语句,找出每个歌手年份最新的一首歌曲名字
+------------+----------+--------+

+------------+----------+--------+
建表语句

-- Music表包含所有歌曲信息,每首歌曲尤其对应的Id,Name,Year和Singer Id
CREATE TABLE music(id INT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(20),`year` INT,sign_id INT
)INSERT INTO music(id,name,year,sign_id) VALUES(null,'七里香',2003,1),
(null,'吻别',2000,2),
(null,'如果爱',2001,2),
(null,'菊花台',2005,1);-- Singer表包含所有歌手信息
CREATE TABLE signer(id INT PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(20)
)INSERT INTO signer(id,name) VALUES(null,'周杰伦'),
(null,'张学友');

查询语句

SELECTs. NAME AS Signer,m. NAME,m. YEAR
FROMsigner s
INNER JOIN (SELECT*FROMmusicORDER BY`year` DESC
) AS m ON m.sign_id = s.id
GROUP BYs.id

因为我是一个新手,如果有什么更好的解题方法,欢迎写在评论里

欢迎关注我的个人博客 /

更多推荐

MySQL多表查询排序

本文发布于:2024-03-05 10:03:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1711993.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:MySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!