[英]sql query to get data from two tables when one column name is same in both tables
[英]Sql Query for inserting data from 2 tables into one based on name
您好,我目前有2個來自不同來源的數據表,我需要將它們全部合並到一個主表中。
數據庫布局 :
表A
-名稱
-排行
-得分
表B
-名稱
-排行
-得分
表新
-名稱
-排名A
-分數A
-排名B
-得分B
我想從表A和B中獲取數據,然后根據名稱將其插入表New中。 不確定如何在sql中執行此操作,不勝感激
假設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
嘗試以下操作(應在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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.