raiz
V2EX  ›  问与答

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

  •  
  •   raiz · Nov 17, 2018 · 1204 views
    This topic created in 2763 days ago, the information mentioned may be changed or developed.

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

    请教大家

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2849 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:21 · PVG 23:21 · LAX 08:21 · JFK 11:21
    ♥ Do have faith in what you're doing.