0
我正在索引兩篇帖子。一個是標題(單詞),另外兩個是關鍵字。我已選擇使用3個表格:SQL索引/關係
word_index (word,word_id) // al words and keywords are indexed
keyword_rel (word_id,postId) // relations with the keywords
word_rel (word_id,postId) // relations with the the words of the title
現在我正試圖對此進行一次體面的搜索查詢。只使用關鍵字,它工作正常。
SELECT p.postId
FROM word_index wi
INNER JOIN keyword_rel kr ON wi.word_id=kr.word_id
INNER JOIN post p ON p.postId=kr.postId
WHERE wi.word LIKE 'input%'
GROUP BY p.postId
但現在我想包括word_rel
在標題還搜索。
我嘗試這樣做,但它不健全的權利,也沒有返回的一切(缺少一些wi.word的):
SELECT p.postId,wi.word
FROM word_index wi
INNER JOIN keyword_rel kr ON wi.word_id=kr.word_id
INNER JOIN word_rel wr ON wi.word_id = wr.word_id
INNER JOIN post p ON p.postId=kr.postId
INNER JOIN post pi ON pi.postId=wr.postId
WHERE wi.word LIKE 'input%'
GROUP BY p.postId
問題是與INNER JOIN post p
這是關係到keyword_rel
。現在我也需要它與word_rel
相關。什麼是這樣做的好方法?
這似乎是工作,但它總是哪怕它比一個更多返回一個字堅持。 –
你的意思是你的搜索文本是'FOO',你的查詢只返回帶有'FOO'的帖子,而它應該返回'FOOBAR'和'FOOBARJAR'的帖子? – shadyyx
似乎現在工作。這是郵政表的東西。謝謝! –