從多張表查詢資料需使用 JOIN(連接)。本文以音樂專輯資料庫示範基本內連接用法。
asin(PK), title, artist, price, release, label, rankalbum(FK指向 asin), dsk, posn, songFROM album JOIN track ON album.asin = track.album
產生虛擬表,含專輯欄位與曲目欄位。
SELECT title, artist
FROM album JOIN track ON album.asin = track.album
WHERE song = 'Alison';
SELECT artist
FROM album JOIN track ON album.asin = track.album
WHERE song = 'Exodus';
連接鍵 asin、album 在各自表中唯一,可省略表名前綴,但建議保留以利閱讀。
SELECT song
FROM album JOIN track ON album.asin = track.album
WHERE title = 'Blur';
JOIN ... ON ... 視為產生一張臨時寬表,後續 WHERE、SELECT 皆針對此寬表操作。INNER JOIN,僅保留雙方有匹配的列。FROM a JOIN b ON ... JOIN c ON ...。