A question about joining two tables

I must be overlooking something. The following query returns 432 rows:

select * from users where sponsorID = ‘0’ and sponsorUpdated is not null and uID not in (select uID from communications where type = ‘Account Change’ and entry like ‘%be 110%’) limit 5000;

This join produces 23 results:

select count(*) from users u join communications c on u.uID = c.uID where u.sponsorID = ‘0’
and u.sponsorUpdated is not null and c.entry like ‘%110%’;

Thoughts?

the first query is actually an “exception” join – rows from the users table that don’t have a matching row in the communications table

the second query is a conventional inner join – rows from the users table that do have a matching row in the communications table

i’m not sure what it is that you were wondering about