我有两个表 hits 和 maps,hits 存储歌单列表,maps 存储歌单与歌的关系,即一个歌单可以有多首歌,
歌单表: CREATE TABLE hits ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT UNIQUE, description TEXT, tag TEXT REFERENCES tags (tag) ON DELETE SET NULL ON UPDATE CASCADE, );
关系表: CREATE TABLE maps ( id INTEGER PRIMARY KEY AUTOINCREMENT, hit_title TEXT REFERENCES hits (title) ON DELETE SET NULL ON UPDATE CASCADE, song_path TEXT REFERENCES songs (filepath) ON DELETE SET NULL ON UPDATE CASCADE, track INTEGER );
现在 maps 里的 hit_title 字段是一个外键,引用到 hits 表的 title 字段; song_path 字段同理引用另一张歌曲表的路径字段。
我的需求是从 maps 的表里查找出所有 歌单 id 为 100 的记录,也就是通过歌单 id 查找歌曲。
SELECT * FROM maps WHERE hit_title = 100; 这查询语句会比较 hit_title, 而我这里只有 hit 的 id。
请问,sqlite 内部也是为 maps 表 hit_title 列存储了 hit 的 id,我觉得应该存在语法,但是我找不到怎么表达。 :(
请教大家