Необходим простой подход к объединению таблиц SQL

#sql #join #merge #concatenation #outer-join

Вопрос:

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

можно ли достичь этого с помощью команд SQL join или concatenate?

как я могу этого достичь?

вот логика, над которой я работаю и пытаюсь найти решение:

ТАБЛИЦА 1:

 ID  Name        Title               Age
2   Paul        Technical Support   22
4   Janne       IT Specialist       27
1   Wladimir    Team Lead           31
3   Mark        Customer Support    40
 

ТАБЛИЦА 2:

 ID  Name        Title               Age
2   Paul        Technical Support   22
4   Janne       IT Specialist       
1   Wladimir                        31
3   Mark        Customer Support    40
 

Ожидаемый результат после слияния:

 ID  Name        Title               Age
2   Paul        Technical Support   22
4   Janne       IT Specialist       27
1   Wladimir    Team Lead           31
3   Mark        Customer Support    40
 

введите описание изображения здесь

Комментарии:

1. Соедините таблицы и используйте nvl isnull или аналогичную функцию , чтобы получить не пропущенное значение, в зависимости от того, какую СУБД вы используете

2. Результаты после слияния такие же, как table1 . Слияние, по-видимому, вообще не требуется. У вашего вопроса также должен быть соответствующий тег базы данных.

Ответ №1:

Для этого вам следует использовать следующий запрос

 select t1.id,t1.name,t1.title,t1.age,t2.id,t2.name.t2.title,t2.age from table1 t1 join table2 t2 where t1.id=t2.id
 

Комментарии:

1. при слиянии будут дублироваться строки идентификаторов 4 и 1 из-за пустых значений в таблице 2?

2. эй, извините, попробуйте использовать distinct с вашим t1.id

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