在SQL中执行左连接时如何插入空值

时间:2015-06-09 09:13:17

标签: mysql sql

我有这两个表(每个元素都在列中):

TABLE A: 
ID  1  2  3 4 5
TD  20 10 0 1 7

TABLE B:
ID  2  3 
TD  40 30 

我想做一个LEFT JOIN来获取一个FINAL_TABLE,其中我有所有的ID表A和表B的一个与A的共同点。我也希望如果表A中有ID而不是表B(例如ID 1,4,5),在FINAL_TABLE中我将在该ID处显示NULL。 FINAL_TABLE应该是(见列中的所有内容):

ID  1    2  3  4    5
TDA 20   10 0  1    7
TDB NULL 40 30 NULL NULL

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

不太确定这是否是您要求的,但也许您只想将一个结果添加到另一个?

select 'TDA', col1, col2, col3, col4, col5 from tableA
UNION ALL
select 'TDB', null, col1, col2, null, null from tableB

答案 1 :(得分:0)

我认为这应该有效。你能试试一次。

    INSERT INTO FINAL_TABLE
    (
        ID,
        tdA,
        tdB
    )
    SELECT 
        A.ID,
        A.td,
        B.td
    FROM
        TABLEA 
    LEFT OUTER JOIN TABLEB ON (A.ID=B.ID)
    GROUP BY
        A.ID,
        A.td,
        B.td
    ;