Sam*_*erg 4 mysql sql null join
我正在2列上进行2个表的外连接.如果table1.column1 = table2.column1和table1.column2 = table2.column2,则应该进行连接.由于允许column2包含null,因此只要值为null,连接就会失败,因为null不等于null(只有计算机科学家才会喜欢).
我想出的解决方法是:
select table1.column1,table1.colunn1,table2.column1,table2.column2 from
table1
left join table2
on table1.column1=table2.column1
and if(table1.column2 is null,table2.column2 is null, table1.column2=table2.column2)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但必须有更好的方法吗?
您可以使用MySQL 空安全比较运算符 <=>:
SELECT t1.column1, t1.column2, t2.column1, t2.column2
FROM table1 t1
LEFT JOIN table2 t2
ON t1.column1 = t2.column1 AND t1.column2 <=> t2.column2
Run Code Online (Sandbox Code Playgroud)