2013-02-20 2 views
1

У меня есть две таблицы:SQL Join или Union?

Customer Time Program 
----------------------------------- 
1   8:05 a 
2   9:38 b 
3   10:45 c 
4   12:00 a 

Customer Time Program 
----------------------------------- 
1   11:30 d 
5   1:45 e 
6   9:45 f 
7   2:15 g 

Я хочу, чтобы мой стол выглядеть следующим образом:

Customer Time Program 
----------------------------------- 
1   8:05 a 
1   11:30 d 
2   9:38 b 
3   10:45 c 
4   12:00 a 
5   1:45 e 
6   9:45 f 
7   2:15 g 

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

+0

Это «СОЮЗ». Не имеет значения, имеют ли столбцы 'time' разные имена. –

+0

Это довольно прямолинейно. Что вы пробовали? –

+0

Я знал, что это будет довольно прямолинейно, и я попробовал оба. Эта база данных настолько велика и сложна, что я не могу сказать, какой из них работает правильно, поэтому я хотел дважды проверить! Благодаря! –

ответ

4

Похоже, вы хотите СОЮЗ. UNION объединяет строки из двух таблиц, сохраняя столбцы; JOIN связывает столбцы двух разных таблиц с строками.

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

SELECT Customer, FirstTime AS Time, Program FROM Table1 UNION ALL SELECT Customer, SecondTime AS Time, Program FROM Table2 
2

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

0

Использование union all:

[Проблемы с кодом]

select customer, time, program from table1 
union all 

select customer, time, program from table2 

union добавляет дополнительную обработку для удаления дубликатов.