V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
raiz
V2EX  ›  问与答

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

  •  
  •   raiz · 2018-11-17 17:43:10 +08:00 · 894 次点击
    这是一个创建于 1980 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    请教大家

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2857 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:40 · PVG 21:40 · LAX 06:40 · JFK 09:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.