0

私は投稿の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。これを行う良い方法は何ですか?

4

1 に答える 1