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

Per*_*Per 22 mysql sql join nullable

我对MySQL有点不熟练,所以我希望我能在这里找到一些关于我的问题的建议.

基本上我有两个表,为方便起见,称它们为A和B. 两个表都有一个可以为空的C列varchar.当我使用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)
Run Code Online (Sandbox Code Playgroud)

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

GOT*_*O 0 64

使用NULL安全等于运算符:

SELECT * FROM A JOIN B ON A.C <=> B.C
Run Code Online (Sandbox Code Playgroud)

  • 太好了,谢谢!我不知道这个运营商. (4认同)