如果我想比较两个值,我可以写:
SELECT * FROM table1
JOIN table2 ON table1.col = table2.col;
我注意到,如果table1.col
和table2.col
都是NULL
,则无效。所以我更正后的查询如下所示:
SELECT * FROM table1
JOIN table2 ON
(table1.col = table2.col)
OR
(table1.col IS NULL AND table2.col IS NULL);
这是比较两个值的正确方法吗?有没有办法说两个值相等,如果它们都是NULL
?
答案 0 :(得分:16)
比较NULL = NULL
将返回NULL
,但这不是真的,因此加入不会成功。您可以使用NULL safe operator< =>
SELECT * FROM table1
JOIN table2 ON table1.col <=> table2.col;