2016-05-29 3 views
1

Я плохо разбираюсь в SQL и задаюсь вопросом, можно ли это сделать: у меня есть две таблицы: table_a и table_b. Обе таблицы имеют столбец типа TEXT с именем category.SQL-соединение строк в двух таблицах

Пример:

TABLE_A

|-id-|-category-| 
| 1 | fruits | 
| 2 | meats | 
| 3 | fruits | 
| 4 | sweets | 
| 5 | meats | 

TABLE_B

|-id-|-category-| 
| 1 | veggies | 
| 2 | meats | 
| 3 | veggies | 
| 4 | veggies | 
| 5 | meats | 

Что мне нужно, чтобы выбрать все различные категории из обеих таблиц в алфавитном порядке.

Результат должен быть:

fruits 
meats 
sweets 
veggies 

Спасибо

+1

Вам не нужно «присоединяться», вам нужно «union». – fancyPants

+0

Смотрите мой код, требуется только «union». –

ответ

2

Вы должны использовать UNION и ORDER BY пункт:

SELECT DISTINCT category 
FROM Table_A 
UNION 
SELECT DISTINCT category 
FROM Table_B 
ORDER BY category 
+0

DISTINCT лишний из-за UNION. –

+0

Нет его нет, он не будет отбрасывать дубликаты, если они находятся в одной таблице. @CL. – sagi

+0

Это неправильно, UNION отбросит все дубликаты. –

1

В SQL Server можно использовать соединение и заказ

select distinct category from (
select category 
from table_a 
order by category 
union 
select category 
from table_b) 
+0

У меня есть ответ на вопрос (strage becaus в slq union должен быть отличным, но в любом случае – scaisEdge

+0

комментарий хорошо объясняет настоящий мотив, потому что в sql shoul't необходимо disticnt, но в любом случае .. – scaisEdge

+1

Если вы завернули его другим выбором, вы должны использовать 'UNION ALL' для лучших характеристик. – sagi

Смежные вопросы