为什么我会得到此查询的重复记录?我正在执行左外连接
Why am I getting duplicate records for this query? I am performing a Left Outer Join
我在下面输入以下查询并获得重复值。我想如果我做了一个 Left Outer Join 它就不会那样做。我想要 3 列中的 2 列的 T0.
数据。我想要 T1.
数据的一列是与客户代码相关的客户名称。但是好像要填充记录两次。
这是我尝试使用的代码:
SELECT T0.CardCode
,T1.CardName
,T0.State
FROM CRD1 T0 LEFT OUTER JOIN OCRD T1 ON T0.CardCode=T1.CardCode
通常这意味着您在相关 table 中的连接谓词上有多个匹配项。左外连接确保您保留左侧 table 的所有行,无论匹配与否,但不会阻止恰好存在的多个匹配。示例:
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
尝试使用不同的关键字。
SELECT distinct
T0.CardCode
,T1.CardName
,T0.State
FROM CRD1 T0 LEFT OUTER JOIN OCRD T1 ON T0.CardCode=T1.CardCode
在您的 select 中使用关键字 distinct query.Then 您将在输出网格中仅获得单个记录。
谢谢。
我在下面输入以下查询并获得重复值。我想如果我做了一个 Left Outer Join 它就不会那样做。我想要 3 列中的 2 列的 T0.
数据。我想要 T1.
数据的一列是与客户代码相关的客户名称。但是好像要填充记录两次。
这是我尝试使用的代码:
SELECT T0.CardCode
,T1.CardName
,T0.State
FROM CRD1 T0 LEFT OUTER JOIN OCRD T1 ON T0.CardCode=T1.CardCode
通常这意味着您在相关 table 中的连接谓词上有多个匹配项。左外连接确保您保留左侧 table 的所有行,无论匹配与否,但不会阻止恰好存在的多个匹配。示例:
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
尝试使用不同的关键字。
SELECT distinct
T0.CardCode
,T1.CardName
,T0.State
FROM CRD1 T0 LEFT OUTER JOIN OCRD T1 ON T0.CardCode=T1.CardCode
在您的 select 中使用关键字 distinct query.Then 您将在输出网格中仅获得单个记录。
谢谢。