Sql 编写查询以从表1和表2获得以下跟踪输出

Sql 编写查询以从表1和表2获得以下跟踪输出,sql,Sql,表1:家庭 Id Name Gender 1 Ram M 2 shashank m 3 maya f 4 manu f 5 anu f 6 raj m Child_id Parent_id 1 2 1 3 4 5 4

表1:家庭

Id  Name    Gender  
1   Ram        M    
2   shashank    m   
3   maya       f    
4   manu       f    
5   anu         f   
6   raj         m   
Child_id    Parent_id       
1            2      
1            3      
4            5      
4            6      
表2:子女与父母

Child_id    Parent_id       
1            2      
1            3      
4            5      
4            6      
编写查询以获得以下跟踪输出

Child_id    Parent_id       
1            2      
1            3      
4            5      
4            6      
输出:

Child_id    Parent_id       
1            2      
1            3      
4            5      
4            6      
Child_id    Childname   father name   mother name
1           Ram         shashank       Maya
4           manu        raj            anu
这有点棘手:

Child_id    Parent_id       
1            2      
1            3      
4            5      
4            6      
select cp.child_id, f.name,
       max(case when gender = 'm' then fp.name end) as father_name,
       max(case when gender = 'f' then fp.name end) as mother_name
from child_parent cp join
     family f
     on cp.child_id = f.id join
     family fp
     on cp.parent_id = fp.id
group by cp.child_id, f.name;

桌子设计得不好!