これを行うにはいくつかの方法があります:
次のようなアンチジョインを使用できます:
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);
やりたいことをする別の方法(そして私の好みの方法)は次のとおりです:
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;
ただし、このクエリと元のクエリに表示したデータを考えると、ゼロ行が返されるはずです。 SQLFiddleはこちら
メンバー004への現在のローンをコメントアウトすると、「JoeBrown」が返されることに注意してください SQLFiddleここ
幸運を祈ります。