来自多个表的 SQL INSERT INTO

新手上路,请多包涵

这是我的表 1:

 NAME       AGE        SEX        CITY             ID

Clara      22         f          New York         1
Bob        33         m          Washington       2
Sam        25         m          Boston           3

这是我的表 2:

 NUMBER       ID
555-1111     1
555-2222     2
555-3333     3

现在我想要一个表 3,它显示了所有信息:

 NAME       AGE        SEX        CITY             ID        NUMBER

Clara      22         f          New York         1         555-1111
Bob        33         m          Washington       2         555-2222
Sam        25         m          Boston           3         555-3333

我首先尝试仅将表 1 中的值插入表 3,然后将表 2 中的值插入表 3,其中 Id = Id 是内部连接。

 INSERT INTO table3 { name, age, sex, city, id}
SELECT name, age, sex, city, id
FROM table 1

INSERT INTO table3 { name, age, sex, city, id, number}
SELECT name, age, sex, city, id, number
FROM table 2 p
INNER JOIN table 3 c ON c.Id = p.Id

但我得到的只是我的价值观的重复。我有 9 个条目,而不是 3 个条目,其中一些条目的数字为空,有些只有数字,其余的为空,有些是正确的。

我希望有一个人可以帮助我

编辑

如果我现在有第三张这样的表:

 NATIONALITY       ID

Canadian          1
American          2
French            3

如何将所有 3 个表合并为一个表?

原文由 Paparis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 436
2 个回答

您只需要一个 INSERT:

 INSERT INTO destinationTable( name, age, sex, city, id, number, nationality)
SELECT name, age, sex, city, s1.id, number, s3.nationality
FROM sourceTable1 s1
INNER JOIN sourceTable2 s2 ON s2.Id = s1.Id
INNER JOIN sourceTable3 s3 ON s3.Id = s1.Id

原文由 D Stanley 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进