2013-08-06 1 views
0

У меня есть две таблицы, которые я хочу сравнить друг с другом.Сравнение таблиц в SQL?

Table1:      Table2: 

col1 col2 col3    col1 col2 
msp msp ...     msp msp 
cin cin ...     cnn cnn 
msp eri ...     cin cin 
cnn cnn ... 
was asc ... 

Я хочу, чтобы результирующая таблица, чтобы выглядеть следующим образом:

Table3 
col1 col2  col3 col4    
msp msp  msp msp    
cin cin  cin cin    
msp eri  null null    
cnn cnn  cnn cnn 
was asc  null null 

У меня есть запрос, как это, но он не возвращает его так, как я хочу.

SELECT DISTINCT Table1.col1, Table1.col2 
FROM TESTDB 
LEFT JOIN 
    Table2 
    ON Table1.col1 = Table2.col1 
    and Table1.col2 = Table2.col2 

Это было возвращение:

col1 col2  col3 col4    
msp msp  msp msp    
cin cin  cin cin    
msp eri  msp eri    
cnn cnn  cnn cnn 
was asc  was asc 

Я думаю, что есть что-то не так с моим условным положением о. Любая помощь?

+0

Имеет ли этот запрос предложение where? – HLGEM

ответ

1

попробовать это

SELECT DISTINCT Table1.col1, Table1.col2 ,Table2.col1 as col3 ,Table2.col2 as col4 
    FROM Table1 
    LEFT JOIN 
    Table2 
    ON Table1.col1 = Table2.col1 
    and Table1.col2 = Table2.col2 

DEMO HERE

1

Трудно сказать, что случилось с вашим запросом, так как вы показали нам неполную (только две колонки в SELECT). Если я должен догадаться, я бы сказал, что вы не использовали псевдонимы с тем же именем.

Это работает:

SELECT DISTINCT t1.col1 col11, t1.col2 col12, t2.col1 col21, t2.col2 col22 
FROM Table1 t1 
LEFT JOIN 
    Table2 t2 
    ON t1.col1 = t2.col1 
    and t2.col2 = t2.col2 

SQL Скрипки является here.

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