SQL SELECT 語(yǔ)句的表連接
發(fā)布日期:2022-01-28 11:55 | 文章來(lái)源:站長(zhǎng)之家
專輯表:包含200首來(lái)自Amazon的音樂(lè)CD的概要信息。
album(asin, title, artist, price, release, label, rank)
曲目表:每張專輯中的曲目(因?yàn)槭且魳?lè)CD,所以也可叫歌曲)的詳細(xì)信息。
track(album, dsk, posn, song)
SQL短語(yǔ) FROM album JOIN track ON album.asin=track.album 表示連接album和track表。
其中,album.asin表示專輯的惟一標(biāo)識(shí)號(hào),track.album表示曲目表中和專輯關(guān)聯(lián)的專輯號(hào)。
連接后,得到一個(gè)臨時(shí)表,該臨時(shí)表中每條記錄包含的字段由兩部分組成,
除了專輯表中的對(duì)應(yīng)字段album(title, artist ...),還包含曲目表的所有字段track(album, disk, posn and song)。
有了這張臨時(shí)表,很多查詢就容易實(shí)現(xiàn)了。
看看一些具體的實(shí)例,
一、列出歌名為'Alison'的專輯名稱和作者
SELECT title, artist
FROM album JOIN track
ON (album.asin=track.album)
WHERE song = 'Alison'
顯然,歌名、專輯名稱和作者分別在兩個(gè)表中,必需使用表連接來(lái)完成這個(gè)查詢。
二、哪個(gè)artist錄制了歌曲'Exodus'
SELECT artist
FROM album JOIN track ON (asin=album)
WHERE song = 'Exodus' 用作連接的兩個(gè)字段asin,album因?yàn)樵趦蓚€(gè)表中都是惟一的,所以不一定要加表名作為前綴。 但為了方便理解,建議使用前綴,形如:album.asin=track.album 或者如果表名過(guò)長(zhǎng)的話,可以用as達(dá)到取代作用,如 FROM album as a JOIN track as t ON a.asin=t.album 三、列出曲目表中所有屬于'Blur'專輯的歌曲
SELECT song
FROM album JOIN track ON (asin=album)
WHERE title = 'Blur'
如果我們把 album JOIN track ON (asin=album) 看成一個(gè)臨時(shí)表的話,join的概念就很好理解了。
復(fù)制代碼 代碼如下:
SELECT title, artist
FROM album JOIN track
ON (album.asin=track.album)
WHERE song = 'Alison'
FROM album JOIN track ON (asin=album)
WHERE song = 'Exodus' 用作連接的兩個(gè)字段asin,album因?yàn)樵趦蓚€(gè)表中都是惟一的,所以不一定要加表名作為前綴。 但為了方便理解,建議使用前綴,形如:album.asin=track.album 或者如果表名過(guò)長(zhǎng)的話,可以用as達(dá)到取代作用,如 FROM album as a JOIN track as t ON a.asin=t.album 三、列出曲目表中所有屬于'Blur'專輯的歌曲
復(fù)制代碼 代碼如下:
SELECT song
FROM album JOIN track ON (asin=album)
WHERE title = 'Blur'
如果我們把 album JOIN track ON (asin=album) 看成一個(gè)臨時(shí)表的話,join的概念就很好理解了。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
相關(guān)文章