Mysql连接为null

时间:2017-03-03 12:36:10

标签: mysql join null

我有2个表,每个表都有3列要加入。

table A
c1 c2   c3
10 NULL NULL
10 NULL 1
10 1    NULL

table B
c1 c2   c3
10 NULL NULL
10 NULL 1
10 1    NULL

我想加入它们以便NULL = NULL,所以

SELECT * FROM a JOIN b ON a.c1 = b.c1 AND a.c2 = b.c2 AND a.c3 = b.c3

我希望它加入NULL应该匹配NULL。所以我最终获得了3条记录:

table A+B
c1 c2   c3   c1 c2   c3
10 NULL NULL 10 NULL NULL
10 NULL 1    10 NULL 1
10 1    NULL 10 1    NULL

这有可能吗?我也尝试过IFNULL,但确实得到了我期望的结果。如果你能指出我正确的方向,我将不胜感激。非常感谢!

1 个答案:

答案 0 :(得分:2)

使用NULL - 安全等式运算符:

SELECT *
FROM a JOIN
     b
     ON a.c1 <=> b.c1 AND a.c2 <=> b.c2 AND a.c3 <=> b.c3;

但是,对于您的示例数据,第一列上的join就足够了:

SELECT *
FROM a JOIN
     b
     ON a.c1 = b.c1 ;