Można to zrobić na kilka sposobów:
Możesz użyć zabezpieczenia przed sprzężeniem, takiego jak:
SELECT m.MEMBERID,
m.LASTNAME,
m.FIRSTNAME
FROM MEMBERS m
WHERE m.MEMBERID NOT IN (SELECT DISTINCT MEMBERID
FROM CURRENTLOAN
UNION ALL
SELECT DISTINCT MEMBERID
FROM HISTORY);
Innym sposobem (i moim preferowanym sposobem) na zrobienie tego, co chcesz, jest:
SELECT DISTINCT m.MEMBERID,
m.LASTNAME,
m.FIRSTNAME
FROM MEMBERS m
LEFT OUTER JOIN (SELECT DISTINCT MEMBERID
FROM (SELECT MEMBERID
FROM CURRENTLOAN
UNION ALL
SELECT MEMBERID
FROM HISTORY)) u
ON u.MEMBERID = m.MEMBERID
WHERE u.MEMBERID IS NULL;
Jednak biorąc pod uwagę dane, które pokazałeś, to zapytanie, a także oryginalne zapytanie, powinno zwrócić zero wierszy. SQLFiddle tutaj
Zwróć uwagę, że jeśli skomentujesz bieżącą pożyczkę członkowi 004, zostanie zwrócony "Joe Brown" SQLFiddle tutaj
Powodzenia.