显示标题来自另外两个表

时间:2017-11-17 13:12:44

标签: sql postgresql

我的数据库中有一个CONTAINS表:

CREATE TABLE CONTAINS(
    album_id INTEGER NOT NULL REFERENCES Album,
    song_id INTEGER NOT NULL REFERENCES Song,
    PRIMARY KEY(album_id , song_id)
);

我有两个其他表ALBUM和SONG:

CREATE TABLE ALBUM(
    album_id INTEGER NOT NULL,
    title TEXT NOT NULL,
    PRIMARY KEY(album_id)
);

CREATE TABLE SONG(
    song_id INTEGER NOT NULL,
    title TEXT NOT NULL,
    PRIMARY KEY(album_id)
);

如果我SELECT * FROM CONTAINS,我会收到Album_Id及其各自的Song_Id s。现在如何显示专辑名称和歌曲名称而不是ID?

1 个答案:

答案 0 :(得分:0)

尝试此查询:

select a.title as album_name,s.title as song_name 
from contains c join album a 
on c.album_id=a.album_id 
join song s 
on c.song_id=s.song_id;