首先,请注意我对 SQL(在本例中为 sqlite3)几乎没有经验,因此即使这个问题的标题也可能措辞不当。
假设我有一个笔记表 ( n
),以及这些笔记的关键字表 ( k
),最后是一个将一个或多个关键字与每个笔记相关联的表 ( nk
)。我想做的是找到每个包含两个(或更多)关键字的注释。
更具体地说,下面(sqlite3)是我设置数据库的方式。
CREATE TABLE n(nid integer primary key autoincrement, content);
CREATE TABLE k(kid integer primary key autoincrement, content);
CREATE TABLE nk(nkid integer primary key autoincrement, nid, kid);
INSERT INTO n(content) VALUES ("note 1");
INSERT INTO n(content) VALUES ("note 2");
INSERT INTO k(content) VALUES ("keyword 1");
INSERT INTO k(content) VALUES ("keyword 2");
INSERT INTO nk(nid, kid) VALUES (1, 1);
INSERT INTO nk(nid, kid) VALUES (1, 2);
INSERT INTO nk(nid, kid) VALUES (2, 1);
有了这个,我可以得到用关键字 ID 1 标记的笔记
select * from n LEFT JOIN nk ON nk.nid = n.nid WHERE nk.kid=1;
我的问题是如何获取关键字 ID 为 1和2 的注释。我在网络上进行了一些搜索,但恐怕我的知识不足以想到好的搜索词。我希望这个网站上的人可以提供帮助,而且——重要的是——如果这是一个愚蠢的问题,我深表歉意。