Der er et par måder at gøre dette på:
Du kan bruge en anti-join, såsom:
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);
En anden måde (og min foretrukne metode) at gøre, hvad du vil, er:
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;
Men givet de data, du har vist, bør denne forespørgsel, såvel som din oprindelige forespørgsel, returnere nul rækker. SQLFiddle her
Bemærk, at hvis du kommenterer det aktuelle lån til medlem 004, så returneres "Joe Brown" SQLFiddle her
Held og lykke.