A NULL join key is not equal to another NULL join key in this scoped join model.
NULL does not match NULL
Read NULL-key facts
NULL-key matches are 0.
NULL matches=0
Inner-join examples are tiny finite-table transforms; SQL dialect completeness, type coercion, optimizer behavior, execution cost, indexing, and database-product claims are out of scope.
No padded rescue
Because this is an inner join, the NULL-key left row is dropped.
no match, no row
Summary
NULL-key nonmatching and unmatched-row dropping are separate checks.