将其他两行合并创建一个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数据库的主要内容,如果未能解决你的问题,请参考以下文章