您好我目前有2个来自不同来源的数据表, 我需要将它们全部合并到一个主表中。
数据库布局:
表A
-name
-Ranking
-Score
表B
-name
-Ranking
-Score
表格新
-name
- 放弃A
-Score A
- 翻译B
-Score B
我想从表A和B中获取数据,并根据名称将其插入表New。 不知道如何在sql中执行此操作,任何帮助赞赏
答案 0 :(得分:6)
假设TableA中的每条记录在TableB中都有相应的记录:
insert into TableNew
(Name, RankingA, ScoreA, RankingB, ScoreB)
select a.Name, a.Ranking, a.Score, b.Ranking, b.Score
from TableA a
inner join TableB b
on a.Name = b.Name
如果该假设无效,那么:
insert into TableNew
(Name, RankingA, ScoreA, RankingB, ScoreB)
select a.Name, a.Ranking, a.Score, b.Ranking, b.Score
from TableA a
left join TableB b
on a.Name = b.Name
union all
select b.Name, a.Ranking, a.Score, b.Ranking, b.Score
from TableB b
left join TableA a
on b.Name = a.Name
where a.Name is null
答案 1 :(得分:0)
试试这个(应该在Oracle,SQL Server,MySQL中运行): 要创建第三个表(如果它不存在):
CREATE TABLE [TableNew] AS
SELECT a.Name
,a.Ranking RankingA
,a.Score ScoreA
,b.Ranking RankingB
,b.Score ScoreB
FROM TableA a, TableB b
WHERE a.Name = b.Name
要插入第三个表格(如果存在):
INSERT INTO [TableNew]
SELECT a.Name
,a.Ranking RankingA
,a.Score ScoreA
,b.Ranking RankingB
,b.Score ScoreB
FROM TableA a, TableB b
WHERE a.Name = b.Name