SQL - 将两个数据库表合并到一个数据库表中

时间:2015-10-18 04:05:08

标签: mysql sql sql-server database sqlite

我需要创建一个包含n行值的视图(或表),取自两个具有相同结构的不同表。例如:

表国家

id    name        Country
----------------------------
1     Franz       Germany
2     Alberto     Italy
3     Miguel      Spain

表格电子邮件

id    name        Email
----------------------------
1     Franz       franz@gmail.com
2     Alberto     alberto@gmail.com
3     Miguel      miguel@gmail.com
表poneno

id    name        Phone
----------------------------
1     Franz       111-111-1111
2     Alberto     111-111-1111
3     Miguel      111-111-1111

合并的数据库必须是这样的:

id    name        Country        Email                 Phone
---------------------------------------------------------------------
1     Franz       Germany        franz@gmail.com       111-111-1111
2     Alberto     Italy          alberto@gmail.com     111-111-1111
3     Miguel      Spain          miguel@gmail.com      111-111-1111

3 个答案:

答案 0 :(得分:0)

您可以尝试这样:

Select 
Country.id,
Country.name,
Country.country,
email.Email,
phoneno.phone

FROM

Country
INNER JOIN email ON (Country.id = email.id)  
INNER JOIN phoneno ON (Country.id = phoneno.id) 

答案 1 :(得分:0)

创建表会复制数据;只有在需要创建数据快照时才有意义。 要始终查看数据的当前状态,请使用视图:

repaint()

即使缺少某些电子邮件或电话号码,使用outer join也会返回行。 如果一个国家/地区行有多个电子邮件或电话号码,您将获得重复的国家/地区数据。

答案 2 :(得分:-1)

尝试选择所需的列。您可以从多个表中获取 例如,

SELECT id, name, email, phone FROM table1, table2, table3