我使用我学到的正常形式重建了我的数据库,但是现在我有问题将它们连接成一个包含所有表格的数据。
我有一个歌曲数据库,表格的连接是这样链接的:
songs artists song_vocals song_composers
--------------------------------------------------------------------
song_id artist_id song_id song_id
title artist_name artist_id artist_id
有多个表,其外键指向艺术家表。
我想用这样的名字显示所有信息,我不希望用id显示它们:
song_id title vocal composer
--------------------------------------------------------
1 ABC John Cat
到目前为止,我能做的最好的就是加入3张桌子,只给我 song_id , title 和 vocal :
SELECT songs.song_id, songs.title, artists.artist_name as vocal FROM songs
LEFT JOIN song_vocals ON
song_vocals.song_id = songs.song_id
left join artists ON
song_vocals.artist_id = artists.artist_id
我如何加入更多?
答案 0 :(得分:0)
如果你没有这样做,你可以为作曲家创建一个表,并在你的song_vocals表中添加一个外键,无论如何你的语句都是你的主表。然后你可以在艺术家之后添加另一个左连接到作曲家表,虽然不要忘记在你的select语句中放入composers.composer_name(我假设)。
答案 1 :(得分:0)
表song_vocals和song_composer
之间有什么区别答案 2 :(得分:0)
SELECT
songs.title as SongTitle,
a1.artist_name as Vocal,
a2.artist_name as Composer
FROM songs
left join song_vocals ON song_vocals.song_id = songs.song_id
left join artists a1 ON song_vocals.artist_id = a1.artist_id
left join song_composers on songs.song_id = song_composers.song_id
left join artists a2 on a2.artist_id = song_composers.artist_id
这是您应该使用的代码块。 如果您有两个或多个指向表的链接,则在使用ALIAS时可以多次使用该表。 在你的前。 " A1"" A2"是你的ALIAS