我正在对 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)
这工作正常,但一定有更好的方法吗?
最佳答案
您可以使用 MySQL null-safe comparison operator <=>
:
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
关于mysql - 当两个表都包含 NULL 时如何加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11566409/