#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. я думаю, что после объединения может помочь группировка столбцов с максимальным значением. вместо того, чтобы повторять.