2011-12-16 2 views
0

Я пытаюсь выполнить запрос в БД Oracle 10g для соединения двух подзапросов, как это следующим образом:Outer присоединиться к группе подзапросов

SELECT * FROM(
select count(y), x from a group by y) t1 
full join 
(select count(z), x from b group by z) t2 
on (t1.x = t2.x) 

Проблема заключается в том, что выход показывает две различные столбцы для х как из этого следует:

y   z   x   x1   
------------------------------------------- 
    2   4   1   1   
    3   (null)  2   (null)  
    2   (null)  3   (null)  
    8   (null)  4   (null)  
    (null)  4   (null)  5   
    (null)  6   (null)  6 

Кто-нибудь может мне помочь? Заранее спасибо!

+2

Пожалуйста, покажите, какие результаты вы ожидаете/желания. Я предполагаю, что вы хотите UNION, но я не могу быть уверен, пока не узнаю, какие результаты вам действительно нужны. – MatBailie

+0

Я хочу присоединиться к таблицам с помощью атрибута x, не является объединением, потому что у них есть только один общий столбец. Используя coalesce, я решу проблему, но я не знаю, почему полное присоединение к атрибуту x не генерирует один столбец вместо двух – biggtor

ответ

1

Я подозреваю, что вы хотите:

SELECT coalesce(t1.x, t2.x) x, t1.y, t2.z 
FROM (select count(y), x from a group by x) t1 
full join (select count(z), x from b group by x) t2 on (t1.x = t2.x) 
Смежные вопросы