middle_initial(though that might be better as the empty string)
IS NOT NULL--
= NULLdoes not work like you expect.
x <=> yis a "null-safe" comparison.
LEFT JOIN tests for rows of
a for which there is not a corresponding row in
SELECT ... FROM a LEFT JOIN b ON ... WHERE b.id IS NULL