如何编写查询语句从包含指定字段的数据集中获取家族亲属关系记录
SQL查询语句编写方案
实现思路
- 你需要对目标表做自连接(Self Join) 操作,给同一张表设置两个不同别名,在关联条件中同时匹配你要求的两条规则即可。
通用查询语句
假设你的表名为family_members,可根据实际表名替换:
SELECT -- 可按需调整要返回的字段 d1.name AS 人员1姓名, d2.name AS 人员2姓名, d1.last_name AS 共同姓氏 FROM family_members d1 INNER JOIN family_members d2 ON -- 两个匹配规则 d1.last_name = d2.last_name AND d1.grand_name = d2.father_name;
可选补充规则
如果需要避免同名记录的无效自匹配,可以在关联条件中额外加一个判断:
AND d1.name != d2.name
这个关联逻辑匹配到的是「d1的祖父为d2的父亲」的同姓亲属关系,符合你要求的家族亲属查询场景。
内容的提问来源于stack exchange,提问作者Boom
相关产品推荐
相关产品推荐

