表1结构 如下product_key   praent_key        product_name    level108       98         普通住宅001 3
109       98         普通住宅002 3
111       110          普通别墅001 3
表2结构如下
product_key   praent_key        product_name    level97          0              住宅 1
98          97            普通住宅 2
108          98         普通住宅001 3
109          98         普通住宅002 3
110          97              别墅 2
111          110         普通别墅001 3
112          110        普通别墅002 3输出结果:product_key   praent_key        product_name    level108       98         普通住宅001 3
109       98         普通住宅002 3
111       110          普通别墅001 3
98            97                 普通住宅 2
110           97                 别墅          2
97       0                   住宅          1谢谢各位!!!!

解决方案 »

  1.   

    USE test
    go-->生成表t1if object_id('t1') is not null 
    drop table t1
    Go
    Create table t1([product_key] smallint,[praent_key] smallint,[product_name] nvarchar(7),[level] smallint)
    Insert into t1
    Select 108,98,N'普通住宅001',3
    Union all Select 109,98,N'普通住宅002',3
    Union all Select 111,110,N'普通别墅001',3-->生成表t2if object_id('t2') is not null 
    drop table t2
    Go
    Create table t2([product_key] smallint,[praent_key] nvarchar(3),[product_name] nvarchar(7),[level] smallint)
    Insert into t2
    Select 97,N'0',N'住宅',1
    Union all Select 98,N'97',N'普通住宅',2
    Union all Select 108,N'98',N'普通住宅001',3
    Union all Select 109,N'98',N'普通住宅002',3
    Union all Select 110,N'97',N'别墅',2
    Union all Select 111,N'110',N'普通别墅001',3
    Union all Select 112,N'110',N'普通别墅002',3select 

    from t2 AS a
    WHERE EXISTS(SELECT 1 FROM t1 AS x
    WHERE x.product_key=a.product_key
    )
    OR EXISTS(SELECT 1 FROM t2 AS x
    WHERE x.praent_key=a.product_key
    )
    ORDER BY 
    level DESC
    ,product_key

    /*
    product_key praent_key product_name level
    ----------- ---------- ------------ ------
    108         98         普通住宅001      3
    109         98         普通住宅002      3
    111         110        普通别墅001      3
    98          97         普通住宅         2
    110         97         别墅           2
    97          0          住宅           1
    */