将其他两行合并创建一个Mysql数据库

Posted

技术标签:

【中文标题】将其他两行合并创建一个Mysql数据库【英文标题】:Create a Mysql database by combining the lines of the other two 【发布时间】:2015-04-02 13:17:54 【问题描述】:

我向你解释这个问题。我需要一个 mysql 查询来创建具有这 2 个数据库的 Database3。

DATABASE1:
Url,Company Name,Address,City,ZipCode
www.aaa.com,AAA,StreetAAA,CityAAA,00000
www.bbb.com,BBB,StreetBBB,CityBBB,11111
www.ccc.com,CCC,StreetCCC,CityCCC,22222
www.ddd.com,DDD,StreetDDD,CityDDD,33333
www.eee.com,EEE,StreetEEE,CityEEE,44444
www.fff.com,FFF,StreetFFF,CityFFF,55555

DATABASE2:
Url,Phone
www.aaa.com,0000000000
www.aaa.com,1111111111
www.aaa.com,2222222222
www.bbb.com,3333333333
www.ccc.com,4444444444
www.ccc.com,5555555555
www.ccc.com,6666666666
www.ddd.com,7777777777
www.ddd.com,8888888888
www.eee.com,9999999999

我想要一个像这样的最终数据库,包括 PHONE,重复每个电话号码的所有完整信息,不包括没有电话号码的行:

DATABASE3:
Url,Company Name,Address,City,ZipCode,PHONE
www.aaa.com,AAA,StreetAAA,CityAAA,00000,0000000000
www.aaa.com,AAA,StreetAAA,CityAAA,00000,1111111111
www.aaa.com,AAA,StreetAAA,CityAAA,00000,2222222222
www.bbb.com,BBB,StreetBBB,CityBBB,11111,3333333333
www.ccc.com,CCC,StreetCCC,CityCCC,22222,4444444444
www.ccc.com,CCC,StreetCCC,CityCCC,22222,5555555555
www.ccc.com,CCC,StreetCCC,CityCCC,22222,6666666666
www.ddd.com,DDD,StreetDDD,CityDDD,33333,7777777777
www.ddd.com,DDD,StreetDDD,CityDDD,33333,8888888888
www.eee.com,EEE,StreetEEE,CityEEE,44444,9999999999

提前致谢,

问候

【问题讨论】:

【参考方案1】:

你可以尝试如下

SELECT distinct
b.Url, a.Company Name, a.Address, a.City, a.ZipCode, b.Phone
from 
DATABASE2 b  left outer join DATABASE1 a
On a.Url = b.Url
Where b.Phone IS NOT NULL
Order by b.Phone

【讨论】:

最好选择a.url 作为left join【参考方案2】:

MySQL 支持create table ... as select,它根据查询创建新表:

create table NewTable as
select  t1.Url
,       t1.`Company Name`
,       ...
,       t2.Phone
from    table1 t1
left join
        table2 t2
on      t1.url = t2.url

【讨论】:

以上是关于将其他两行合并创建一个Mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

通过采用 MySQL 中的最低列值“合并”两行 [重复]

MySQL数据库联合查询与连接查询

MySQL 5.7.8 JSON 合并新数据

mysql多表查询合并到一个临时表,怎么再加一列并把各自的表名加上?

MySQL - 将两列分成两个不同的行

MySQL中如何合并结构和记录数都不同的两个表?