使用MySQL,如果您有一个句子表和一个包含多对多表的单词表,其中包含它们之间的关系,您将如何构建查询以查找包含短语的句子?

例如,使用这些表...

Words
1 apples
2 like
3 I
4 used
5 to
6 eat

Sentences
1 I used to like apples
2 I used to eat apples

Words2Sentences
pkey fk_word fk_sentence
1 1 1
2 2 1
3 3 1
4 4 1
5 5 1
6 1 2
7 3 2
8 4 2
9 5 2
10 6 2


您将如何构造联接和查询以便找到短语“二手”。由于需要多语言支持,全文索引不适合我的需求。

最佳答案

INNER JOIN子句中使用LIKEWHERE。见下文:

SELECT
      Words,Sentences
FROM Words A
INNER JOIN Words2Sentences B A.fk_word=B.fk_word
INNER JOIN Sentences C B.fk_sentence=C.fk_sentence
WHERE Sentences LIKE '%used to%'

09-15 17:23