Sql 具有重复id的表内部联接表无重复id

Sql 具有重复id的表内部联接表无重复id,sql,join,Sql,Join,在最后一个选择结果中,我看到重复的id。如何删除副本。见附图 虽然您的样本数据不能提供100%的准确答案,但以下是一些指南,希望能对您有所帮助 为了避免在没有列可用于唯一标识重复记录的情况下在联接中出现重复,我建议在子查询中抑制它们,然后将子查询与另一个表联接 由于您似乎有真正的重复项,这意味着您从子表中检索到的所有列都具有相同的值,因此DISTINCT应该: SELECT i.*, c.TELEPHONE_NUM FROM [dbo].[GT_Import] AS i JOIN ( S

在最后一个选择结果中,我看到重复的id。如何删除副本。见附图


虽然您的样本数据不能提供100%的准确答案,但以下是一些指南,希望能对您有所帮助

为了避免在没有列可用于唯一标识重复记录的情况下在联接中出现重复,我建议在子查询中抑制它们,然后将子查询与另一个表联接

由于您似乎有真正的重复项,这意味着您从子表中检索到的所有列都具有相同的值,因此
DISTINCT
应该:

SELECT i.*, c.TELEPHONE_NUM
FROM [dbo].[GT_Import] AS i
JOIN (
    SELECT DISTINCT TELEPHONE_NUM
    FROM [dbo].[ComplainSubscriber_Import]
) AS c ON c.TELEPHONE_NUM = i.TELEPHONE_NUM
WHERE ...

您可以向子查询中添加更多的列,只要它们具有重复的值。

输入数据表A、表B中缺少列
客户服务\u电话\u NUM
,。。。?请澄清您的问题选择不同的?@OmarNaoushi:到目前为止,您的样本数据还不够健谈,我们无法提供解决方案。您说您要选择多个列,但您只显示一个(这就是为什么有人建议使用DISTINCT)。你需要花更多的精力准备一个数据集和结果来说明你的问题。如果DISTINCT不是答案,你对“重复”的定义是什么?如果某列中有多行具有相同ID和不同数据,将选择哪一行?如果有,那么您可以使用group by和min(),或Max()来表示其他列。hi GBM thx用于回答问题,即使问题不清楚,请参见所附图片。我试图用不同的替换顶部,但问题是相同的