SQL: выбрать одинаковый столбец из двух таблиц - PullRequest
10 голосов
/ 04 сентября 2008

У меня есть база данных с двумя таблицами (Table1 и Table2). Они оба имеют общий столбец [ColumnA], который является nvarchar.

Как я могу выбрать этот столбец из обеих таблиц и вернуть его как один столбец в моем наборе результатов?

Итак, я ищу что-то вроде:

ColumnA in Table1:
a
b
c

ColumnA in Table2:
d
e
f

Result set should be:
a
b
c
d
e
f

Ответы [ 8 ]

16 голосов
/ 04 сентября 2008
SELECT ColumnA FROM Table1 UNION Select ColumnB FROM Table2 ORDER BY 1

Кроме того, если вы знаете, что содержимое таблиц 1 и 2 будет НИКОГДА не совпадать, вы можете использовать UNION ALL вместо UNION. Таким образом экономит немного ресурсов.

- Кевин Фэйрчайлд

3 голосов
/ 04 сентября 2008

Вам небезразлично, если у вас есть дупли или нет?

UNION будет медленнее, чем UNION ALL, потому что UNION будет отфильтровывать дубли

1 голос
/ 04 сентября 2008

Правильный ответ почти правильный, в зависимости от перекрывающихся значений:

SELECT distinct ColumnA FROM Table1
UNION
SELECT distinct ColumnA FROM Table2

Если бы «d» появилось в таблице «1» или «c» появилось в таблице «2», у вас было бы несколько строк.

1 голос
/ 04 сентября 2008

Используйте оператор UNION :

SELECT ColumnA FROM Table1
UNION
SELECT ColumnA FROM Table2
0 голосов
/ 04 сентября 2008

В Oracle (по крайней мере) есть UNION и UNION ALL, UNION ALL будет возвращать все результаты из обоих наборов, даже если есть дубликаты, тогда как UNION будет возвращать отличные результаты из обоих наборов.

0 голосов
/ 04 сентября 2008

Я считаю, что это:

SELECT columna FROM table1 UNION SELECT columnb FROM table2;
0 голосов
/ 04 сентября 2008
SELECT Table1.*, Table2.d, Table2.e, Table2.f 
FROM Table1 JOIN Table2 ON Table1.a = Table2.a

Или я неправильно понял ваш вопрос?

Редактировать: Похоже, я сделал.

0 голосов
/ 04 сентября 2008

Вы можете использовать выбор объединения:

Select columnA from table1 union select columnA from table2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...