首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在MYSQL数据库中多对多表中插入和选择数据

如何在MYSQL数据库中多对多表中插入和选择数据
EN

Stack Overflow用户
提问于 2018-07-19 07:53:51
回答 1查看 117关注 0票数 0

表关系

大家好,我需要帮助如何在MYSQL中输入和拉出一个简单的多对多关系表中的数据,因为我完全迷失了,并即将使用设置的数据类型,但我知道多对多是正确的方法。为了帮助您更好地理解,我提供了一张表格布局的图片。我有三张桌子(衬衫,shirt2color,颜色)。shirt表有2列(shirt_id、shirt),shirt2color (映射表)有2列(shirt_id、color_id),颜色表有2列(color_id、color)。

我已经创建了表和关系,但是如何在不手动映射的情况下输入和拉取数据?有没有一个INSERT语句,我可以添加t恤,并在一条语句中告诉数据库它是可用的颜色,它会将“t恤”和“红、绿、蓝”添加到数据库中,并自动填充映射表?使用照片中的示例作为指导:(p.s.我想这就是示例关系数据存储在映射表中的方式,如果不是,请让我知道)

  1. 插入T恤(有红色、绿色和蓝色可供选择)的SQL语句是什么?
  2. 选择并列出所有可用红色衬衫的SQL语句是什么?
  3. 如何处理衬衫条目上的重复颜色?例如,如果我添加另一件红色衬衫,我不想在color_id #4中再次添加红色,我会使用color_id #1。

我知道这些可能完全是新手问题,但在过去的几周里,我在网上找不到这些问题的答案。感谢你们能提供的任何帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-19 09:02:20

1)

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

2)

代码语言:javascript
复制
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)

您可以向color表的color列添加一个UNIQUE约束,这将防止创建重复的条目。当您想要插入一个新项目时,您应该首先检查该颜色是否已存在于表中,如果存在,则在shirt2color表中使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51412464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档