2 Stimmen

Sql-Abfrage zum Einfügen von Daten aus 2 Tabellen in eine Tabelle auf der Grundlage des Namens

Hallo, ich habe derzeit 2 Tabellen mit Daten aus verschiedenen Quellen, Ich muss sie alle in einer Haupttabelle kombinieren.

Datenbank-Layout :
Tabelle A
-Name
-Ranking
-Score

Tabelle B
-Name
-Ranking
-Score

Tabelle Neu
-Name
-Ranking A
-Punktzahl A
-Ranking B
-Punktzahl B

Ich möchte die Daten aus den Tabellen A und B in die Tabelle Neu einfügen, und zwar auf der Grundlage des Namens. Ich bin mir nicht sicher, wie ich das in Sql machen soll, jede Hilfe ist willkommen

6voto

Joe Stefanelli Punkte 128819

Angenommen, jeder Datensatz in TabelleA hat einen entsprechenden Datensatz in TabelleB:

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

Wenn diese Annahme ungültig ist, dann:

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

0voto

Chandu Punkte 79046

Versuchen Sie dies (sollte in Oracle, SQL Server, MySQL funktionieren): Um die dritte Tabelle zu erstellen (falls sie nicht existiert):

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

Einfügen in die dritte Tabelle (wenn sie existiert):

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X