Sql 按名字和姓氏查找重复记录

Sql 按名字和姓氏查找重复记录,sql,postgresql,Sql,Postgresql,我有一张叫“慈善”的桌子。关于它的一些事实: 受益人属于一个组织 一个组织有许多好处 受益人有名字和姓氏,没有其他身份证明形式。 表中的一些示例数据 | id | firstname | lastname | organization_id | |----|-----------|----------|-----------------| | 1 | jan | kowalski | 1 | | 2 | jan | kovalski | 3

我有一张叫“慈善”的桌子。关于它的一些事实:

受益人属于一个组织 一个组织有许多好处 受益人有名字和姓氏,没有其他身份证明形式。 表中的一些示例数据

| id | firstname | lastname | organization_id |
|----|-----------|----------|-----------------|
| 1  | jan       | kowalski | 1               |
| 2  | jan       | kovalski | 3               |
| 3  | john      | doe      | 1               |
| 4  | jan       | kowalski | 2               |
我想通过名字和姓氏查找来自某个组织的受益信息是否也存在于其他组织中,如果是,我想获取该组织的ID

在上面的示例数据中,我想要的是给定组织id 1,查询应该返回2,因为jan kowalski对组织2也有好处,但对组织3没有好处,因为即使它们与名字匹配,也与姓氏不匹配

我提出了以下问题:

以组织为受益人 从受益人中选择firstname,lastname,其中组织id=?并且在处删除的_为空 从受益人中选择组织\u id 其中firstname在从组织中选择firstname 和lastname,从组织中选择lastname 并且在处删除的_为空 和组织机构?; 它有点有效,但如果不同组织的名字或姓氏相同,它会返回一些假阳性。我需要匹配名字和姓氏,但我不知道如何匹配

我曾想过加入这个组织,但我不确定这是否有效,因为一个组织有很多好处。我不想在这里添加像fullname这样的列

您可以按名字和姓氏分组,然后筛选重复项

选择firstname,lastname 来自慈善机构 按姓氏分组 计数*>1; 编辑后,您似乎希望选择给定组织中同时出现在其他组织中的人员的记录

挑选* 来自慈善机构 其中a.organization_id!=1. 存在 选择1 来自受益人b 其中a.firstname=b.firstname a.lastname=b.lastname 和b.organization_id=1 ;
请提供示例数据和期望的结果。不完全是我需要的,我将很快编辑这个问题,以便更清楚,但我想要的是:如果受益的名字和姓氏与来自不同组织ID的受益相匹配,我想要的是组织ID,而不是名字和姓氏。这真的很酷,正是我需要的!谢谢!