我有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,但确实得到了我期望的结果。如果你能指出我正确的方向,我将不胜感激。非常感谢!
答案 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 ;