Добавьте UNION и другой столбец, чтобы увидеть, откуда он пришел
SELECT matchmaker.mmpreID, matchmaker.mmparID, users.uID,
users.ufname, users.ulname, "mmpar only" as source
FROM matchmaker
LEFT JOIN users ON matchmaker.mmparID = users.uID AND matchmaker.mmparID != matchmaker.mmpreID
UNION
SELECT matchmaker.mmpreID, matchmaker.mmparID, users.uID,
users.ufname, users.ulname, "mmpre only" as source
FROM matchmaker
LEFT JOIN users ON matchmaker.mmpreID = users.uID
AND matchmaker.mmparID != matchmaker.mmpreID
UNION
SELECT matchmaker.mmpreID, matchmaker.mmparID, users.uID,
users.ufname, users.ulname, "both" as source
FROM matchmaker
LEFT JOIN users ON matchmaker.mmpreID = users.uID AND matchmaker.mmparID = matchmaker.mmpreID
Пересмотрен ответ выше, чтобы включить 3 возможных результата
1. uID соответствует только mmparID
2. uID соответствует только mmpreID
3. uID соответствует как mmparID, так и mmpreID
Да, UNIONS не очень эффективны, но иногда они необходимы