当两个表都包含NULL时如何联接 [英] How to JOIN ON when both tables contain NULL

查看:304
本文介绍了当两个表都包含NULL时如何联接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在对2列的2个表进行外部联接.如果table1.column1 = table2.column1和table1.column2 = table2.column2,则应该发生联接.由于允许column2包含null,所以只要 null 不等于 null (只有计算机科学家会喜欢),否则连接将在值null时失败. /p>

我想出的解决方法是:

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 解决方案

You could use the 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

这篇关于当两个表都包含NULL时如何联接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆