2016-06-03 4 views
1

Привет Я, имеющий table 1 следующимкак соединить 2 таблицы с одной колонки в SQL

Product_Id Type 
110   1 
121   1 
133   1 

и table2 как

Count_Id Type Product_ID 
130   5  NULL 
98   7  NULL 
37   9  NULL 

Сейчас я использую Полный присоединиться и получил

Product_Id Type Count_id Type Product_Id 
    110   1 NULL  NULL NULL 
    121   1 NULL  NULL NULL 
    133   1 NULL  NULL NULL 
    NULL  NULL 130  5  NULL 
    NULL  NULL 98  7  NULL 
    NULL  NULL 37  9  NULL 

Могу ли я получить такой выход

Product_Id  Type Count_id Product_Id 
    110   1 NULL  NULL 
    121   1 NULL  NULL 
    133   1 NULL  NULL 
    NULL   5 130  NULL 
    NULL   7 98  NULL 
    NULL   9 37  NULL 

Пожалуйста, помогите

+0

ПРИСОЕДИНИТЕСЬ РАБОТАЮТСЯ только ДЛЯ ОБЪЕДИНЕНИЯ на поле по идентичному значению, что вы хотите сделать, это иметь операцию UNION по данным. Это должно быть что-то вроде «SELECT Product_Id, Type, NULL AS Count_ID» из таблицы_1 UNION SELECT Product_Id, Type, Count_Id из таблицы_2 «NULL as Count_Id» должен быть добавлен в оператор SELECT таблицы_1, поскольку сама таблица не содержит колонка. – brokenisfixed

+0

Да, я получил выход. Спасибо за помощь. – Venkatvasan

+0

Рад помочь! :) – brokenisfixed

ответ

0

Согласно brokenisfixed замечания, это не может быть достигнуто с помощью JOIN из-за отсутствие сопоставимых ключей присоединиться через. Вместо этого вы должны UNION два наборов данных, вместе следующим образом:

SELECT 
    [Product_Id], 
    [Type], 
    NULL AS [Count_id], 
    NULL AS Type, 
    NULL AS Product_Id 
FROM Table1 
UNION 
SELECT 
    NULL, 
    NULL, 
    [Count_id], 
    [Type], 
    [Product_Id] 
FROM Table2; 

Рабочий пример: http://sqlfiddle.com/#!3/e8691/5

0

IIUC, все, что вам нужно, это проекция.

select table1.Product_Id, 
     coalesce(table1.Type, table2.Type) as Type, 
     Count_id, 
     table2.Product_Id 
from ... -- your join here 
Смежные вопросы