私は投稿の2つのものを索引付けしています。1 つはタイトル (単語) で、2 つはキーワードです。このために 3 つのテーブルを使用することにしました。
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
。これを行う良い方法は何ですか?