首先,請注意,我沒有什麼經驗與SQL(在這種情況下,sqlite3),所以即使這個問題的標題可能是ill-措詞。sql JOIN與布爾值WHERE
假設我有筆記(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);
有了這個,我可以得到筆記標記爲1的關鍵字ID與
select * from n LEFT JOIN nk ON nk.nid = n.nid WHERE nk.kid=1;
,我的問題是,我怎樣才能得到注意到關鍵字ID 1 和 2.我已經在網絡上做了一些搜索,但我擔心我的知識不足以考慮良好的搜索條件。我希望這個網站上的某個人能夠提供幫助,並且 - 重要的是 - 如果這是一個愚蠢的問題,我很抱歉。
這看起來很完美。非常感謝! – dank 2013-02-12 19:31:20