首页 > 解决方案 > 查找重复项

问题描述

我正在尝试进行查找以从表中获取目标 ID(s:

source_id      source_name        target_name
1              abc                def
2              def                def
3              ghi                jkl
4              jkl                mno

我在用:

select a.*,b.source_id as parent_id
from table a
left join table b
on a.source_name=b.target_name;

但是当我申请更大的数据时,我在加入后得到重复。请帮助我解决这里的原因。我需要在加入之前和之后的表的计数(*)与单独插入的 target_id 相同。

谢谢!

标签: sqloracle

解决方案


我推测你的join条件是倒退的:

select a.*, b.source_id as parent_id
from table a left join
     table b
     on b.source_name = a.target_name;

在您的source_name表中看起来是独一无二的,而不是target_name.

也就是说,你根本不应该依赖name。您的“目标”或“父”列应参考id. 因此,您的数据模型看起来可以修复。


推荐阅读