Actually, `NA` matches `NA` in both `merge` and `[`. To emulate SQL behavior, there should be an argument to avoid `NA` matching with anything ```r d = data.table d(a=c(1:2,NA,NA))[d(a=c(2:3,NA,NA)), on="a"] # should return only 2:3 ```