繁体   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