Oracle
 sql >> Base de données >  >> RDS >> Oracle

Il dit que je n'ai pas sélectionné de ligne ?

Il existe plusieurs façons de procéder :

Vous pouvez utiliser un anti-jointure, tel que :

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);

Une autre façon (et ma méthode préférée) de faire ce que vous voulez est :

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;

Cependant, compte tenu des données que vous avez affichées, cette requête, ainsi que votre requête d'origine, ne devrait renvoyer aucune ligne. SQLFiddle ici

Notez que si vous commentez le prêt actuel au membre 004, "Joe Brown" est renvoyé SQLFiddle ici

Bonne chance.