Добавление нового столбца с данными из объединения - PullRequest
11 голосов
/ 11 ноября 2011

Каков наилучший подход для добавления столбца в существующую таблицу со значениями из объединения ... Например:

Если я присоединю Таблицу А к Таблице Б ...

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

По сути, я просто хочу скопировать столбец, который существует в Таблице B, в Таблицу A, как я могу добавить новый A.Column3 в Таблицу A для соответствия B.Column3 на основе объединения?

Ответы [ 5 ]

21 голосов
/ 11 ноября 2011

Попробуйте это:

alter table A add column3 datatype

update A 
set column3 = B.column3 
from A inner join B on A.Column1 = B.Column2
5 голосов
/ 11 ноября 2011

Обратите внимание, что это, вероятно, не самый эффективный метод

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)
1 голос
/ 11 ноября 2011

Сначала используйте команду alter table , чтобы добавить новый столбец.

В последующих словах используйте команду update , чтобы поместить значения B встолбец, созданный в A.

0 голосов
/ 22 февраля 2017

Вы можете сделать это:

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 голосов
/ 11 ноября 2011

Вы можете создать новую таблицу, используя оператор INSERT:

INSERT INTO
   NEW_A
SELECT
   A.*,
   B.Column3
FROM A
   INNER JOIN B
   ON A.Column1 = B.Column2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...