Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 删除从联接返回的重复项_Sql_Duplicates_Records - Fatal编程技术网

Sql 删除从联接返回的重复项

Sql 删除从联接返回的重复项,sql,duplicates,records,Sql,Duplicates,Records,我正在尝试连接两个表。每个表都有一个唯一的ID。加入后,将返回多个记录(多对一关系)。如何避免重复记录并获得一条匹配记录 在电子邮件和日期字段中使用了加入条件: select 1.email, 1.lead_id, 1.lead_date, 2.rdm_id from table_1 inner join table_2 on 1.email=2.email and 1.lead_date = 2.post_date 表1: email, lead_id, lead_date 124@

我正在尝试连接两个表。每个表都有一个唯一的ID。加入后,将返回多个记录(多对一关系)。如何避免重复记录并获得一条匹配记录

在电子邮件和日期字段中使用了加入条件:

select 1.email, 1.lead_id, 1.lead_date, 2.rdm_id
from table_1 
   inner join table_2 on 1.email=2.email and 1.lead_date = 2.post_date
表1:

email, lead_id, lead_date 124@gmail.com, 1655535, 1/1/2013 124@gmail.com, 1655536, 1/1/2013 email, rdm_id, post_date 124@gmail.com, 3283370, 1/1/2013 124@gmail.com, 3283373, 1/1/2013 电子邮件、潜在客户id、潜在客户日期 124@gmail.com, 1655535, 1/1/2013 124@gmail.com, 1655536, 1/1/2013 表2:

email, lead_id, lead_date 124@gmail.com, 1655535, 1/1/2013 124@gmail.com, 1655536, 1/1/2013 email, rdm_id, post_date 124@gmail.com, 3283370, 1/1/2013 124@gmail.com, 3283373, 1/1/2013 电子邮件、rdm\U id、发布日期 124@gmail.com, 3283370, 1/1/2013 124@gmail.com, 3283373, 1/1/2013 我希望我的输出是:

124@gmail.com, 1655535, 3283370, 1/1/2013 124@gmail.com, 1655536, 3283373, 1/1/2013 124@gmail.com, 1655535, 3283370, 1/1/2013 124@gmail.com, 1655536, 3283373, 1/1/2013 目前正在返回:

124@gmail.com, 1655535, 3283370, 1/1/2013 124@gmail.com, 1655536, 3283370, 1/1/2013 124@gmail.com, 1655535, 3283373, 1/1/2013 124@gmail.com, 1655536, 3283373, 1/1/2013 124@gmail.com, 1655535, 3283370, 1/1/2013 124@gmail.com, 1655536, 3283370, 1/1/2013 124@gmail.com, 1655535, 3283373, 1/1/2013 124@gmail.com, 1655536, 3283373, 1/1/2013
只需使用distinct或group by删除重复项

select distinct ....


你已经试过什么了?为什么每个“记录”有多行?我们改进现有代码比编写新代码更容易。您的行不是重复的。请解释选择所需行的逻辑,并用您使用的数据库标记问题。您使用的是哪种DBMS?博士后?Oracle?使用MySQL执行内部连接电子邮件和日期时,它不知道如何区分哪个记录(lead_id)与相应的rdm_id。使用distinct或group by不起作用。distinct不会删除(“当前返回”)示例中的任何行。结果中没有重复项。查询正在MySQL数据库中运行。我试过使用Distinct和Group By,但都不起作用。当然都不起作用,它们不是重复的行。@Erick这是我的错,我没有看到第二行之间的区别。你如何从第二列和第三列中选择哪一列?在大多数情况下,有一个1:1的关系,所以加入工作,但在同一天有多个相同的电子邮件地址提交的情况下,这就是我卡住的地方。唯一的另一个独特特征是日期中的时间戳。我没有在我的帖子中包括这一点,但这里有一个示例表1:id/date_created 1655535/1/1/2013 4:39:16 AM 1655536/1/1/2013 4:43:18 AM表2:3283370 1/1/2013 5:42:08 AM 3283373 1/1/2013 5:46:08 AM