web-dev-qa-db-fra.com

Ajout d'une nouvelle colonne avec les données d'une jointure

Quelle est la meilleure approche pour ajouter une colonne à une table existante avec les valeurs d'une jointure ... Par exemple:

Si je rejoins les tableaux A à B ...

Select
A.Column1,
A.Column2,
B.Column1,
B.Column2,
B.Column3
FROM A
INNER JOIN B
ON A.Column1 = B.Column2

En gros, je veux simplement copier la colonne de la table B dans la table A, comment puis-je ajouter un nouveau A.Column3 à la table A pour correspondre à B.Column3 en fonction de la jointure?

11
dorianpc

Essaye ça:

alter table A add column3 datatype

update A 
set column3 = B.column3 
from A inner join B on A.Column1 = B.Column2
21
Steve Henderson

Notez que ceci est probablement pas méthode la plus efficace

alter table A add column3 [yourdatatype];

update A set column3 = (select column3 from B where A.Column1 = B.Column2) 
  where exists (select column3 from B where A.Column1 = B.Column2)
5
bpgergo

Commencez par utiliser une commande alter table pour ajouter la nouvelle colonne.

Les mots suivants utilisent update commande pour mettre les valeurs de B dans la colonne créée dans A.

1
aF.

Tu peux le faire:

alter A add column3 datatype;

update A
inner join (select column2 ,column3, count(*) as cnt from B group by column2) b
on A.column1 = b.column2 set 
A.column3 = b.column3;
0
Harshith Cariappa