sql—如何在mysql数据库中插入和选择多对多表中的数据

unftdfkk  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(413)

关闭。这个问题需要更加突出重点。它目前不接受答案。
**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。

两年前关门了。
改进这个问题
表关系

嗨,所有我需要的帮助,如何进入和拉数据从一个简单的多对多关系表在mysql,因为我完全失去了和即将去与一个设置的数据类型,但我知道多对多是正确的方法来做到这一点。为了帮助您更好地理解,我附上了一张table布局的图片。我有三张table(衬衫,衬衫,颜色)。shirt表有2列(shirt\u id,shirt),shirt2color(Map表)有2列(shirt\u id,color\u id),color表有2列(color\u id,color)。
我已经创建了表和关系,但是如何在没有手动Map的情况下输入和提取数据?不是有一个insert语句,我可以添加t恤并告诉数据库它在一个语句中有可用的颜色,它会将“t恤”和“红、绿、蓝”添加到数据库并自动填充Map表吗?使用照片中的示例作为指导:(请注意,我想这就是示例关系数据存储在Map表中的方式,如果没有,请告诉我)
插入t恤(有红色、绿色和蓝色可选)的sql语句是什么?
选择并列出所有可用的红色衬衫的sql语句是什么?
如何处理衬衫条目上的重复颜色?例如,如果我添加了另一件红色的衬衫,我不想用color#id#4再次添加红色,我想使用color#id#1。
我知道这些可能都是新手的问题,但在过去的几周里,我在网上找不到这些问题的答案。谢谢你们的帮助。

7vhp5slm

7vhp5slm1#

不能-需要为每个表编写单独的insert语句。
2)

SELECT shirt.shirt_id, shirt.shirt FROM shirt
INNER JOIN shirt2color ON shirt.shirt_id = shirt2color.shirt_id
INNER JOIN color ON shirt2color.color_id = color.color_id AND color.color = 'Red'

你可以加一个 UNIQUE 约束到 colorcolor 表中,这将防止创建重复条目。当您要插入一个新项目时,您应该首先检查颜色是否已经存在于表中,并在表中使用它 shirt2color 如果有的话。

相关问题