簡體   English   中英

SQL查詢根據名稱將2個表中的數據插入到一個表中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM