使用 sql 中的键连接数据库中的多个表

Posted

技术标签:

【中文标题】使用 sql 中的键连接数据库中的多个表【英文标题】:connecting multiple tables in a database using keys in sql 【发布时间】:2016-11-03 01:03:04 【问题描述】:

我有一个名为 student 的表格,其中包含 studentidnameaddressemail,电话。 每个学生可能有多个电子邮件 ID 和多个电话号码。我也想记录所有的电子邮件和电话号码。因此,我通过删除 email-id 列和 phone 列来操作 student 表列并创建另一个表 studentemail与列 emailserialnumberemail-id。还有一张 studentphone 表格,其中包含 phoneserialnumberphone 列。学生表由 studentidnameaddress 列组成。我是否应该在学生表中添加更多列以保持与其他表的关系。现在我有三张桌子。现在我如何使用键关联表格。我的意思是我应该在哪一列中设置主键和外键,以便连接三个表。

谢谢

【问题讨论】:

您需要向我们展示您尝试使用的查询。在此处阅读有关如何提问的更多信息:***.com/help/how-to-ask 您的 studentemailstudentphone 表需要包含与 student 的 FK 关系 - 它们需要包含 studentid 的字段 我删除了不兼容的数据库标签。仅使用您真正使用的数据库标记问题。 如果你截图你的表格设计会更好。 所以在 studentemailstudentphone 表中,studentid 列应标记为外键,student 表中的studentid 列应标记为主键 right ? 【参考方案1】:

您的studentemailstudentphone 表只需要另一列来引用student 表。在您的情况下,这将是 studentid 列。

然后,您可以将数据集中到一个查询中。我应该注意,您可能需要一个列来指定电子邮件和电话号码是什么 - 家庭、手机、工作等等。

【讨论】:

@DotNetbeginner 。 . .是的,您可以添加多个电话号码和多个电话。你似乎走在正确的轨道上。

以上是关于使用 sql 中的键连接数据库中的多个表的主要内容,如果未能解决你的问题,请参考以下文章

使用 Informatica 连接位于不同数据库中的多个表

如何从 SQL 表中选择特定行并连接 SQL 服务器中的多个表?

sql链接查询

使用多个表和连接加速 SQL 搜索

SQL Server表连接

SQL将多行左连接成一行