簡體   English   中英

查詢多對多關系MySQL

[英]Querying many-to-many relationship MySQL

好的,我將盡力解釋這種情況:

我有一張桌子,例如,杯子。 我還有另一桌液體。 它們之間存在多對多的關系。

杯子

  • 閑置
  • 材料

液體

  • 流動性
  • 液體

Cup_Has_Liquid

  • cup_idcup
  • liquid_idliquid

示例:杯子可以有“水”,“牛奶”,“啤酒”等。

我如何只選擇既有“牛奶”又有“水”的杯子?

謝謝

使用聯接表。

那是中間的一張桌子,是兩者之間的混合體。 它會有一個復合主鍵,這兩個鍵鏈接到您要聯接的表上的每個主鍵。

液體表包含LiquidID作為PK。 Cups表包含CupID作為PK。

在中間,您有一個Lines表,它有一個復合主鍵。 該表中的鍵是:

LiquidID和CupID。

然后,您可以將連接表中的液體ID鏈接到液體表,並對要連接到杯子的其他鍵執行相同的操作。 然后,您可以從聯接表中引用液體ID和CupID。

我希望這可以解決,這是一個非常令人困惑的話題。

編輯:請參閱此鏈接以獲取信息。 :)

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

編輯2

聯接表可以是諸如實線之類的東西,而您的查詢將是這樣的。

選擇* FROM liquidLines,其中CupID = 1 AND LiquidID = 1 OR CupID = 1 AND LiquidID = 2

使用此子查詢:

“從杯子里選擇*(選擇名稱='牛奶'和'水'的液體);”

名稱是表“ Liquids”中的一列。

我想那應該做的工作:)

祝你今天愉快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM