0

我有两张表我想相互比较。

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  

我认为我的条件子句 ON 有问题。有什么帮助吗?

4

2 回答 2

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 Fiddle这里

于 2013-08-06T19:22:18.247 回答
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

在这里演示

于 2013-08-06T19:09:57.627 回答