如何将多个表中的电话号码插入mysql中的单个联系人表?
Posted
技术标签:
【中文标题】如何将多个表中的电话号码插入mysql中的单个联系人表?【英文标题】:How to insert phone numbers from multiple tables to single contact table in mysql? 【发布时间】:2022-01-23 21:14:29 【问题描述】:当我有不同的表时,比如教师、学生...我想将这些电话号码插入到单个联系人表中。
-
教师桌
学生桌
联系表
如何在没有外键冗余的情况下创建Contact表与那些表的关系?
【问题讨论】:
外键是存储数据关系的最少冗余方式。 【参考方案1】:假设教师和学生之间没有重叠,您可以插入两个表的并集
INSERT INTO Contact (name, phone)
SELECT name, phone FROM Teacher
UNION ALL
SELECT name, phone FROM Student;
您可能还想在Contact
中创建一个新列来跟踪联系人的类型。在这种情况下,请使用以下内容:
INSERT INTO Contact (name, phone, type)
SELECT name, phone, 'teacher' FROM Teacher
UNION ALL
SELECT name, phone, 'student' FROM Student;
【讨论】:
如果一个老师和一个学生同名呢? 如何知道这个电话号码属于哪个学生或老师? 理想情况下,您应该有一个单人表,其中每个教师和学生都有一个唯一的主键。但是,我的回答的后半部分也解决了这个问题,除非两位老师(或两位学生)碰巧也有相同的名字。以上是关于如何将多个表中的电话号码插入mysql中的单个联系人表?的主要内容,如果未能解决你的问题,请参考以下文章