2012-06-20 104 views
1

我有一個句子表和一個詞表。我正在嘗試創建一箇中間表,以便快速查找哪些句子包含單詞。從現有表格創建多關係

Table A (sentences) 
id INT PRIMARY KEY 
sentence VARCHAR 

Table B (words) 
id INT PRIMARY KEY 
word VARCHAR 

Table C (relationship table) 
id INT PRIMARY KEY 
sentence_id INT 
word_id INT 

我可以填充SQL表C?

查詢會經歷詞語B(字),每個字,記錄是從A(句子)的句子通過使條目表C.

非常感謝,您的SQL學有專長。

回答

2

我會先從:

insert into table C (sentence_id, word_id) 
values (
select A.sentence_id, B.word_id from table B, table A 
where locate(word, sentence) > 0 
order by word, sentence) 
+0

是否「定位」在一個句子一個句子一個字區分,也是一個字的一部分。它與Sql服務器中的「LIKE」運算符類似嗎? –

+0

有趣的是..我玩了一個加入a.sentence像CONCAT(「%」,b.word,「%」),但這似乎更清潔! – Ben

+0

您可能需要連接或子選擇。我也玩過這個:'where location(word,sentence)> 0和IN IN(從B選擇唯一字B2)'' –