SQL: выберите столбец Like из двух таблиц

У меня есть база данных с двумя таблицами (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
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
10
0
11 214
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

Ответ принят как подходящий

SELECT ColumnA FROM Table1 UNION Select ColumnB FROM Table2 ORDER BY 1

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

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

Вы можете сделать ORDER BY 1 в своем первом запросе, чтобы избежать необходимости в подзапросе при заказе.

user12861 08.11.2008 00:31

AFAIK, в частности, SQL Server будет автоматически упорядочивать по выбранному столбцу даже без явного ORDER BY. Но это верно только для случаев UNION, а не для UNION ALL. ORDER BY улучшает читаемость, если заказ был задуман намеренно.

Andriy M 14.01.2011 13:54

Используйте оператор СОЮЗ:

SELECT ColumnA FROM Table1
UNION
SELECT ColumnA FROM Table2

Вы можете использовать выбор союза:

Select columnA from table1 union select columnA from table2 

SELECT Table1.*, Table2.d, Table2.e, Table2.f 
FROM Table1 JOIN Table2 ON Table1.a = Table2.a

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

Обновлено: похоже, я сделал.

Мое первое прочтение вопроса было таким же, как и ваше, ДжесДоу. На оригинальном плакате было бы немного яснее объяснить, что «a, b, c» и т. д. Были значения в ColumnA, тем более что вы использовали букву a как для столбца, так и для значения. Думаю, просто придирки.

Ian Varley 15.11.2008 16:56

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

SELECT columna FROM table1 UNION SELECT columnb FROM table2;

Тебя волнует, получишь ли ты дубли или нет?

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

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

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

SELECT distinct ColumnA FROM Table1
UNION
SELECT distinct ColumnA FROM Table2

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

Другие вопросы по теме