如何在PostgreSQL中将一个表中的值插入另一个表?
假设您有两个表:marks 和 student_info。下面分别给出了这两个表的示例
姓名 | 学号 | 百分比分数 |
---|---|---|
Aniket | 12 | 24 |
Siddhi | 45 | 65 |
Yash | 26 | 42 |
Isha | 56 | 87 |
姓名 | 学号 | 年龄 | 性别 |
---|---|---|---|
Aniket | 12 | 26 | 男 |
Isha | 56 | 25 | 女 |
Siddhi | 45 | 23 | 女 |
Yash | 26 | 25 | 男 |
现在,假设您的工作经理查看这两个表后告诉您:“为什么我们要用两个表?简化一下,把所有东西都移到一个表里!”
因此,您决定将perc_marks列添加到student_info表中。
ALTER TABLE student_info ADD COLUMN perc_marks integer
现在,您将如何填充此列?您会手动为每一列添加分数吗?这样会留下很多出错的余地,而且非常耗时。相反,您可以这样做:
UPDATE student_info SET perc_marks = marks.perc_marks FROM marks WHERE student_info.roll_no = marks.roll_no
这里,roll_no用作两个表之间的公共字段,并更新student_info表中marks的值。请注意,这里的假设是marks表中每个roll_no只有一个条目。如果marks表中有多行具有相同的roll_no,则会使PostgreSQL混淆。通常,使用主键/外键作为公共字段可以避免这种混淆。
现在,如果您查询student_info表 **(SELECT * from student_info)**,您将看到以下输出:
姓名 | 学号 | 年龄 | 性别 | 百分比分数 |
---|---|---|---|---|
Aniket | 12 | 26 | 男 | 24 |
Isha | 56 | 25 | 女 | 87 |
Siddhi | 45 | 23 | 女 | 65 |
Yash | 26 | 25 | 男 | 42 |
如您所见,marks表中的perc_marks值已成功添加到student_info中。
广告