大家好,我正在为音乐应用程序的数据库工作,到目前为止我有这个。
Song
SongId Name Artist
Playlist
PlaylistId Name
Playlist_with_songs
id (fk)PlaylistId (fk)SongId
最后一张表都是主键。
所以我想知道我的查询会是什么样子。 防爆。如果我想用playlistId 5获得所有歌曲,那么我会 必须从Song表中获取实际的歌曲,我可以使用哪种语句。
此外,如果播放列表被删除,这仍然是一个很好的格式,但仍然可以保留所有歌曲。级联会在那里工作吗?
由于 (我正在使用sqlite。)
答案 0 :(得分:1)
SQL部分
老式的方式:
$('<div/>',{ class : 'example'}).appendTo("p");
现代方式:
SELECT * FROM Song
WHERE SongId IN (
SELECT SongId FROM Playlist_with_songs
WHERE Playlist_id = 5)
删除部分
这种模式确实用于n:m关系。您应该为两个FK定义SELECT s.* FROM Song s
JOIN Playlist_with_songs ps ON ps.SongId = s.SongId
AND ps.Playlist_id = 5
。