繁体   English   中英

从两个不同的表中获取数据,这些表在 sql server 中只有一个公共列

[英]getting data from two different tables that have only one common column in sql server

我的表如下:

请给我一个 SQL 查询以获得预期的结果集。

Table1                  
A   B   C   D   E   
1   2   C1  D1  E1  
2   2   C2  D2  E2  
3   2   C3  D3  E3  


Table2                  
A   B   F   G   H   
1   2   F1  G1  H1  
2   2   F2  G2  H2  
3   5   F3  G3  H3  
4   6   F4  G4  H4  

预期结果 :

B   C       D       E       F       G       H
2   C1      D1      E1      NULL    NULL    NULL
2   C2      D2      E2      NULL    NULL    NULL
2   C3      D3      E3      NULL    NULL    NULL
2   NULL    NULL    NULL    F1      G1      H1
2   NULL    NULL    NULL    F2      G2      H2

您需要UNION来组合两个或多个查询的结果,如下所示。 由于您在一个表中有C, D, E而它们在另一个表中不存在,因此您需要将此列添加为NULL值,与F, G, H

SELECT *
FROM (
    SELECT  B,   
            C,   
            D,   
            E, 
            NULL F, 
            NULL G, 
            NULL H  
    FROM Table1 t1
    UNION
    SELECT  B,  
            NULL C,
            NULL D, 
            NULL E,  
            F,   
            G,   
            H  
    FROM Table2 t2
) t
WHERE B = 2

输出:

B   C       D       E       F       G       H
2   C1      D1      E1      NULL    NULL    NULL
2   C2      D2      E2      NULL    NULL    NULL
2   C3      D3      E3      NULL    NULL    NULL
2   NULL    NULL    NULL    F1      G1      H1
2   NULL    NULL    NULL    F2      G2      H2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM