表 table1
名称 父亲 母亲
A     F   M
F     FF  FM
M     MF  MM
FF    FFF FFM
FM    FMF FMM
MF    MFF MFM
MM    MMF MMM要求得到
名称 父 母 父父 父母 母父 母母 父父父 父父母 父母父 父母母 母父父 母父母 母母父 母母母
A    F   M  FF   FM   MF    MM   FFF    FFM    FMF   FMM    MFF     MFM    MMF    MMM
F    FF  FM FFF  FFM  FMF   FMM 
M    MF  MM MFF  MFM  MMF   MMM
FF   FFF FFM
FM   FMF FMM
MF   MFF MFF
MM   MMF MMM只查三代以内数据
  

解决方案 »

  1.   

    SELECT 
    A.名称,A.父亲,A.母亲
    ,F.父亲 AS 父父,F.母亲 AS 父母
    ,M.父亲 AS 母父,M.母亲 AS 母父
    ,FF.父亲 AS 父父父,FF.母亲 AS 父父母
    ,FM.父亲 AS 父母父,FM.母亲 AS 父母母
    ,MF.父亲 AS 母父父,MF.母亲 AS 母父母
    ,MM.父亲 AS 母母父,MM.母亲 AS 母母母
    FROM TABLE1 A
    LEFT JOIN TABLE1 F ON A.父亲 = F.名称
    LEFT JOIN TABLE1 M ON A.母亲 = M.名称
    LEFT JOIN TABLE1 FF ON F.父亲 = FF.名称
    LEFT JOIN TABLE1 FM ON F.母亲 = FM.名称
    LEFT JOIN TABLE1 MF ON M.父亲 = MF.名称
    LEFT JOIN TABLE1 MM ON M.母亲 = MM.名称