基于Family_tree表查询Nick所有子女的SQL技术问询
问题背景
现有唯一数据表Family_tree,需要查询Nick的所有子女,Nick既可能以父亲身份也可能以母亲身份出现在亲属关系中。
表结构及样例数据如下:
NAME ID FATHER_ID MOTHER_ID --------------- ---------- ---------- ---------- Nick 23 25 24 Jane 10 27 26 Perl 15 9 13 Katrin 50 6 12 Sandra 1 3 8 Demi 2 3 8 Deimar 3 7 5 Gandalf 4 6 5 Bill 5 10 23 Kelly 6 22 43 Dolmar 7 11 20
解决方案
我们可以通过匹配子女的父亲ID或者母亲ID等于Nick的ID来筛选符合要求的结果,查询SQL如下:
SELECT NAME AS 子女姓名, ID AS 子女ID FROM Family_tree WHERE FATHER_ID = (SELECT ID FROM Family_tree WHERE NAME = 'Nick') OR MOTHER_ID = (SELECT ID FROM Family_tree WHERE NAME = 'Nick');
查询结果说明
针对给定的样例数据,最终查询结果为:
| 子女姓名 | 子女ID |
|---|---|
| Bill | 5 |
内容的提问来源于stack exchange,提问作者arche
相关产品推荐
相关产品推荐

