本节介绍join(连接)的概念. 涉及的 music数据库包含两个表:
album(专辑表) 和 track(曲目表).
album(asin, title, artist, price, release, label, rank) track(album, dsk, posn, song)
SQL短语 FROM album JOIN track ON album.asin=track.album
表示连接album和 track表.
该JOIN(连接)后,每条曲目对应一条记录.除了曲目表本身的字段
fields (album, disk, posn and song)
外,每条记录还包含专辑表中的对应字段 album
(title, artist ...).
1a.
找出包含 song(歌曲) 'Alison'的专辑 title(名称) 和 artist(作者)
|
Results |
1b. 哪个 artist(作者)录制了song(歌曲)
'Exodus'?
|
Results |
1c. 列出 track(曲目表)中所有
属于'Blur'album(专辑)的
song(歌曲)
|
Results |
我们可以在joined table(连接表)上使用aggregate functions(集合函数)和
GROUP BY表达式.
2a. 显示每张 album(专辑)的title(名称)
和包含的track曲目数.
|
Results |
Results |
2c. "title track" (主打曲目)就是 song(歌名)和
title(专辑名)相同的曲目. 请找出所有的title tracks(主打曲目).
|
Results |
2d. An "eponymous" album(同名专辑)就是专辑名和artist(作者名)
相同的专辑. (例如,乐队 'Blur'的专辑'Blur'就是同名专辑 ).
请列出eponymous albums(同名专辑).
|
Results |
3a. 找出在两张以上专辑中出现过的歌曲.
同时包含出现的次数.
|
Results |
3b.
A "good value" album (一张物超所值的专辑)就是专辑中每首歌曲的定价低于
50 pence(便士)的专辑.请找出这些专辑,并显示 title(专辑标题),
the price(专辑价格)和 the number of tracks(曲目总数).
|
Results |
3c.
Wagner's Ring cycle 的专辑有 173 tracks(曲目), Bing Crosby
的专辑包含101 tracks(曲目). 请根据专辑中包含曲目的多少,从多到少依次列出这些专辑的名称和包含的总曲目数.
|
Results |