2015-03-23 4 views
1

Полный новичок в Oracle 11g здесь.oracle 11g beginner - как отображать данные из двух таблиц

Если у меня есть две таблицы с некоторыми перекрывающимися атрибутами, но нет отношения, как мне отображать все данные в одной таблице?

Пример:

TABLE A has a PK, a fname, lname. 
TABLE B has a PK, a fname, lname, phone. 

Я хотел бы, чтобы отобразить содержимое TABLE A и TABLE B в одной таблице.

Я думал, что могу использовать UNION, но вы должны иметь одинаковое количество столбцов; и так как TABLE B имеет 3 колонки, я получаю сообщение об ошибке: ORA-01789: query block has incorrect number of result columns.

+1

Редактировать свой вопрос с данными образца и желаемыми результатами. Я (за один) не понимаю, что вы пытаетесь сделать. –

ответ

2

Вы можете вставить «фальшивый» колонку в избранных для TableA так, что два два комплекта выстраиваться:

select PK, fname, lname, null as phone from TableA 
union all 
select PK, fname, lname, phone from TableB 

Это будет эффективно слить два стола.

+1

Спасибо, но в моей реальной проблеме у меня еще 5 столбцов в таблице B, которые также должны отображаться. Не похоже, чтобы добавить несколько «нуль как», но я мог ошибаться. –

+0

Если у вас нет атрибута для подключения таблиц и вы хотите отображать их как один набор, то объединение всех с нулевыми значениями для отсутствующих столбцов - путь. Альтернативой было бы отображать их бок о бок, но если наборы не пересекаются, я не вижу смысла в этом. – jpw

+0

Также обратите внимание, что единственная разница между UNION (ссылка на вопрос) и UNION ALL (используется в этом ответе) заключается в том, что UNION будет стоить дороже для запуска, но это приведет к срыву дубликатов. –

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