这是我的表 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
但我得到的只是我值(value)观的重复。我没有 3 个条目,而是有 9 个条目,其中一些条目的数字为空,一些只有数字,其余的为空,还有一些是正确的。
希望有人能帮助我
编辑
如果我现在有第三个这样的表:
NATIONALITY ID
Canadian 1
American 2
French 3
如何将所有 3 个表合并为一个表?
最佳答案
您只需要一个 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
关于SQL INSERT INTO 从多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20404682/