我正在对两个表格的两列进行外连接。当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)
这个方法可以正常工作,但肯定有更好的办法吧?
NULL = NULL
不能真正导致TRUE
。只需考虑以下示例。《哈姆雷特》的作者是莎士比亚,而《麦克白》的作者也是莎士比亚。另一方面,《吉尔伽美什史诗》的作者是未知的(NULL),《摩诃婆罗多》的作者也是如此。现在,我们可以说前两本书的作者是同一个人,但我们不能这样说另外两本书。 - Andriy M