为什么我会为此查询获取重复记录?我正在进行左外连接

时间:2015-07-23 12:24:08

标签: sql tsql join sapb1

我在下面输入以下查询并获取重复值。我想如果我做了一个左外连接就不会这样做。我希望3列中的2列有T0.个数据。我希望T1.数据的一列是客户代码的相关客户名称。但它似乎想要两次填充记录。

以下是我尝试使用的代码:

SELECT  T0.CardCode
        ,T1.CardName
        ,T0.State

FROM CRD1 T0 LEFT OUTER JOIN OCRD T1 ON T0.CardCode=T1.CardCode

3 个答案:

答案 0 :(得分:0)

通常这意味着您在相关表中的连接谓词上有多个匹配项。左外连接确保您保留左表中的所有行,无论是否匹配,但如果它们碰巧存在,则不会阻止多个匹配。例如:

with _left (id)
as (
    select 3 union all
    select 4 union all
    select 5 
)

,_right(id)
as (
    select 3 union all
    select 3 
)

select *
from _left l
left join _right r on l.id = r.id

结果:

id  id
3   3
3   3
4   NULL
5   NULL

答案 1 :(得分:0)

尝试使用不同的关键字。

SELECT distinct  
    T0.CardCode
    ,T1.CardName
    ,T0.State

FROM CRD1 T0 LEFT OUTER JOIN OCRD T1 ON T0.CardCode=T1.CardCode

答案 2 :(得分:0)

在您选择的查询中使用关键字distinct。然后您将只在输出网格中获得单个记录。

感谢。