If there's an inner join, then there is a matching row. It will be counted by a normal COUNT( * ).
On an outer join, columns in a 'missing' row will be represented as NULL.
You're saying you wish there were two NULLS, 'missing value in table null' and 'missing row in join null', and that you could count the first one?
No, not that complex. Just that I want to be able to specify which of my joined tables I am counting on in a null-safe way, in case the joining table could have null values in all its columns.
If there's an inner join, then there is a matching row. It will be counted by a normal COUNT( * ). On an outer join, columns in a 'missing' row will be represented as NULL.
You're saying you wish there were two NULLS, 'missing value in table null' and 'missing row in join null', and that you could count the first one?