2016-03-28 26 views
1

我正在爲字典項目開發數據庫。我必須存儲一個單詞和含義 - 多對多的關係。如何編寫多對多關係的連接查詢?用於字典項目

下面我提到了我的表結構的示例。我希望表結構是正確的,但我不知道如何在用戶搜索時選擇單個詞的所有含義。

而且我還必須編寫一個查詢來選擇鏈接到單個含義的所有單詞。

而且我還必須編寫一個查詢來選擇鏈接到單個單詞的所有含義。

word_table 
+----+------+ 
| id | word | 
+----+------+ 
| 1 | A | 
| 2 | B | 
| 3 | C | 
+----+------+ 


meaning_table 
+----+--------+ 
| id | meaning| 
+----+--------+ 
| 1 | X  | 
| 2 | Y  | 
| 3 | Z  | 
+----+--------+ 


word_meaning_table 
+---------+-----------+ 
| word_id | meaning_id| 
+---------+-----------+ 
| 1  | 1  | 
| 1  | 2  | 
| 1  | 3  | 
| 2  | 1  | 
| 2  | 3  | 
| 3  | 2  | 
| 3  | 3  | 
+---------+-----------+ 

預期的輸出應該是這樣的。

如果用戶搜索的詞表中的單詞「A」的結果應該是

Result for word "A" 
    +----+----------+ 
    | word| meaning | 
    +----+----------+ 
    | A | X  | 
    | A | Y  | 
    | A | Z  | 
    +----+----------+ 

我不知道該怎麼寫這種情況下連接查詢。

回答

1
SELECT wt.word, mt.meaning 
FROM word_table wt 
INNER JOIN word_meaning_table wmt 
    ON wt.id = wmt.word_id 
INNER JOIN meaning_table mt 
    ON wmt.meaning_id = mt.id 
WHERE wt.word = 'A' 

按照下面的鏈接,一個工作演示:

SQLFiddle

0

嘗試

select word, meaning 
from word_table 
join meaning_table on word_table.id=meaning_table.id;