我如何将表与自身连接以获取数据的层次结构

时间:2019-07-26 17:56:22

标签: sql sqlite hierarchical-data recursive-query

我数据库的一部分包括一个表,该表保存有关块的信息:

CREATE TABLE blocks (
    id_block INTEGER NOT NULL,
    id_type INTEGER NOT NULL,
    id_parent_block INTEGER NOT NULL,
    PRIMARY KEY (id_block),
    FOREIGN KEY (id_type) REFERENCES block_types (id_block_type),
    FOREIGN KEY (id_parent_block) REFERENCES blocks (id_block)
) WITHOUT ROWID;

第一。我不确定 id_parent_block 是外键,因为它是当前表中存在的键。

它应该反映出某种内部块在其中具有块的层次结构。顶部的块的 id_parent_block = -1

块中也有单词:

CREATE TABLE words(
    id_word INTEGER NOT NULL,
    str_word TEXT NOT NULL,
    PRIMARY KEY (id_word),
    FOREIGN KEY (id_block) REFERENCES blocks (id_block),
) WITHOUT ROWID;

一个块中可能有单词(或没有)和块(或没有)。

第二。如何获得与块层次结构中每个块相关的所有 id_word ,其中最上面的块不一定具有id_parent_block = -1?

0 个答案:

没有答案