ensure to convert both postal codes to the same type of data before joining. (text(trim("Postal Code")) for example...
it could give some strange results sometimes otherwise.
or use a where exists() clause, but again ensuring you compare the same type of fields..
last thing: State ISO is also available in both table. even if it is the same info, only keep it in one (locations?) table (otherwise, again, risk of duplicates when joining)
just guessing what may be going wrong...