There's no way in queries to only include primary members, or only include joint members. When we want to send a mailing or print a billing statement for members, we end up with both primary and joint member in the list, and end up having to clean up the list manually. Primary Member should be a high-level filter, and it doesn't even exist in constituent queries.
Instead of fixing this properly, this is Blackbaud's KB's awkward solution:
To find Joint Members: