2017-09-13 3 views
0

Dans Teradata SQL, j'ai deux tables volatiles que j'aimerais joindre. Cependant, si je les rejoins sur colA, ils apparaissent tous les deux dans la sortie. Je veux juste ce colA une fois dans la sortie, pas deux fois.La jointure produit une clé dupliquée (colonne) dans Teradata SQL

J'ai donc:

Table1 with colA, colB, colC 
Table2 with colA, colD, colE 

Ma requête:

SELECT * FROM Table1 
JOIN Table2 ON Table1.colA = Table2.colA 

me donne: colA, colB, colC, colA, colD, colE

alors que je voudrais avoir: colA, colB, colC, colD, colE

Tout le monde sait comment résoudre ce?

+1

'Sélectionnez table1.colA, table1.colB, table1.colC, table2.colD, table2.colE à partir de ...' – jarlh

Répondre

2

La meilleure pratique est de choisir explicitement les colonnes que vous voulez - avec des noms qualifiés:

SELECT t1.A, t1.B, t1.C, t2.D, t2.E 
FROM Table1 t1 JOIN 
    Table2 t2 
    ON t1.colA = t2.colA; 

La syntaxe ANSI a la clause USING qui ne vous permet de le faire:

SELECT * 
FROM Table1 t1 JOIN 
    Table2 t2 
    USING (colA); 

I Ne croyez pas que Teradata supporte cette clause.