2016-01-15 209 views
0

好吧,我將盡我所能來解釋這種情況:查詢多對多的關係MySQL

我有一張桌子,比如杯子。我還有另一張桌子Liquids。它們之間有多對多的關係。

  • idcup
  • 材料

液體

  • idliquid
  • 液體

Cup_Has_Liquid

  • cup_idcup
  • liquid_idliquid

舉例:A罩杯可以有 「水」, 「牛奶」, 「啤酒」 等

我怎麼會只選擇有「牛奶」和「水」的杯子?

謝謝

回答

0

使用加入表。

這是一箇中間的表格,是兩者之間的混合體。 它將有一個複合主鍵,這兩個鍵鏈接到您嘗試加入的表上的每個主鍵。

液體表包含LiquidID,因爲它是PK。 杯子表包含CupID,因爲它是PK。

中間有一個Lines表,它有一個複合主鍵。 該表中的關鍵字是:

LiquidID & CupID。

然後,您可以將加入表中的液體ID鏈接到液體表格,然後對另一個進入杯子的鍵執行相同的操作。 然後,您可以從連接表中引用液體ID和CupID。

我希望這會清除它,這是一個非常令人困惑的話題。

編輯: 看到這個鏈接的信息。 :)

http://www.joinfu.com/2005/12/managing-many-to-many-relationships-in-mysql-part-1/

編輯2

接合表可以像液體管線和您的查詢會是這樣的。

SELECT * FROM liquidLines其中丘比特= 1 AND LiquidID = 1,丘比特= 1 AND LiquidID = 2

+0

我知道,那不是我真正想問的。我在示例中比連接表的概念要求更多。 – user2827048

+0

好的寫作解釋掛在 – Bigwater

+0

我不認爲你理解我的問題。我已經在我的帖子中做過了。 – user2827048

0

使用此子查詢: -

「SELECT * FROM杯凡在(選擇液體在哪裏名稱='牛奶'和'水');「

名稱是表」液體「中的一列。

我想應該做的工作:)

有一個愉快的一天。