表关系
您好,我需要如何在MYSQL中从简单的多对多关系表输入和提取数据的帮助,因为我完全迷失了,即将使用SET数据类型,但是我知道多对多是正确的方法。我附上一张桌子摆放的图片,以帮助您更好地理解。我有3张桌子(衬衫,shirt2color,颜色)。衬衫表有2列(shirt_id,tshirt),shirt2color(映射表)有2列(shirt_id,color_id),颜色表有2列(color_id,color)。
我已经创建了表和关系,但是如何在不手动映射的情况下输入和提取数据?没有INSERT语句,我可以在其中添加T恤并告诉数据库它可用的颜色,并且它将在数据库中添加“ T恤”和“红色,绿色和蓝色”并填充映射表自动吗?使用照片中的示例作为指导:(请注意,我想示例关系数据将如何存储在映射表中,如果没有,请告诉我)
我知道这些大概是新手问题,但过去几周我都无法在网上找到这些问题的答案。感谢你们提供的任何帮助。
答案 0 :(得分:0)
1)
您不能-您需要为每个表编写单独的插入语句。
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'
3)
您可以在UNIQUE
表的color
列中添加color
约束,这将防止创建重复的条目。当您要插入新项目时,应首先检查表中是否已经存在该颜色,然后在shirt2color
表中使用该颜色。