如何使用可空列加入MySQL表?

时间:2013-08-06 20:44:07

标签: mysql sql join nullable

我有点不习惯MySQL,所以我希望我能在这里找到一些关于我的问题的建议。

基本上我有两张桌子,为方便起见,将它们称为A和B.两个表都具有类型为varchar的可空列C。当我使用C加入A和B时,我丢失了任何表中C为NULL的所有行。我知道这在MySQL中是正常的,但我想得到的是一个包含两个表中C为NULL的行组合的连接。 我发现下面的查询似乎运作良好。

SELECT *
FROM A JOIN B
ON (A.C IS NULL AND B.C IS NULL) OR (A.C IS NOT NULL AND B.C IS NOT NULL AND A.C = B.C)

所以我的问题是,这个查询是我能得到的最好的还是有办法让这个联接变得更好?谢谢!

1 个答案:

答案 0 :(得分:57)

使用NULL-safe equal operator

SELECT * FROM A JOIN B ON A.C <=> B.C