sqlite 通过外键查询,当外键是 text 类型时,用什么语法查找 id?

2018-11-17 17:43:10 +08:00
 raiz

我有两个表 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,我觉得应该存在语法,但是我找不到怎么表达。 :(

请教大家

919 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/508813

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX