MySQL中按可NULL列JOIN时的有关问题
MySQL中按可NULL列JOIN时的问题
MySQL中,SELECT NULL=NULL结果是NULL,SELECT NULL!=NULL结果也是NULL。
如果两个表按某几个列中进行JOIN,如果有一列允许有NULL值,那么关联时要进行特殊处理。一个例子,wbk_mr和dic_hscode按CODE_T和CODE_S进行JOIN,CODE_S可以为NULL,SQL如下:
SELECT m.`CODE_T`,m.`CODE_S`, h.`UNIT_1`,h.`UNIT_2`
FROM `wbk_mr` m
JOIN `dic_hscode` h
ON m.`CODE_T`=h.`CODE_T`
AND (m.`CODE_S`=h.`CODE_S` OR (m.`CODE_S` IS NULL AND h.`CODE_S` IS NULL) )