【发布时间】:2026-02-06 03:40:01
【问题描述】:
我有两个表,我试图根据where a.fname=b.fname and a.phone_no<>b.phone_no 等条件获取一些重复记录
但我还需要包括表 2 中的其他列“地址”,并为重复检查地址引入相同的条件。
SELECT
"Fname"||' '||"Lname" AS "Customer_Name",
COUNT(*) AS "Countof"
FROM "S_CONTACT" A
WHERE EXISTS (
SELECT 1
FROM "S_CONTACT" B
WHERE A."PHONE" != B."PHONE"
AND A."Fname" = B."Fname"
AND A."EMAIL"=B."EMAIL"
AND A."Lname"=B."Lname"
AND "DOB" IS NULL
)
GROUP BY "Fname","Lname","EMAIL"
HAVING count(*) >1;
上面的 sql 给了我一个重复姓名和电子邮件的客户列表。
但是我不知道如何在这个sql中引入来自不同表t2的列地址
【问题讨论】:
-
您声称有两个表,但您的查询只引用了一个。知道你想要什么结果会很有帮助。
-
嗨,@GordonLinoff 上面的查询仅针对一个表进行,其中它给了我重复条目的计数,但我还想在我的 sql“地址”中引入来自表 2 的另一列。表1和表2与ROW_ID和PR_PER_ADDR_ID相关
-
@SumeetJaiswal:你能举一个你想要的输出的例子吗?
-
@GordonLinoff 查询不起作用:SELECT "Fname"||' '||"Lname" AS "Customer_Name","ADDRESS",COUNT() AS "Countof" FROM "S_CONTACT" A,"S_ADDR_PER" C WHERE EXISTS (SELECT 1 FROM "S_CONTACT" B, "S_ADDR_PER" D其中 A."PHONE" != B."PHONE" AND A."Fname" = B."Fname" AND A."EMAIL"=B."EMAIL" AND A."Lname"=B."Lname" AND "DOB" 为 NULL 并且 C."ADDRESS"=D."ADDRESS" AND "S_CONTACT"."PR_PER_ADDR_ID"="S_ADDR_PER"."ROW_ID") GROUP BY "Fname","Lname","EMAIL","ADDRESS " 计数() >1; sql条件:fname -same lname-same email -same phone -different ,address -same
-
@GordonLinoff 所需输出:Fname Lname EMAIL ADDRESS Countof Ashley Doug ashley.doug@abc.com 13,louisiana 2 Chris woakes chris.woakes@abc.com 14,louisiana 2
标签: sql database oracle join plsqldeveloper