sql >> Database >  >> RDS >> Oracle

Hij zegt dat ik geen rij heb geselecteerd?

Er zijn een aantal manieren om dit te doen:

U kunt een anti-join gebruiken, zoals:

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

Een andere manier (en mijn voorkeursmethode) om te doen wat je wilt is:

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;

Gezien de gegevens die u heeft getoond, zou deze zoekopdracht, evenals uw oorspronkelijke zoekopdracht, nul rijen moeten opleveren. SQLFiddle hier

Houd er rekening mee dat als u commentaar geeft op de huidige lening aan lid 004, "Joe Brown" wordt geretourneerd SQLFiddle hier

Veel succes.




  1. Hoe 2 seconden wachten?

  2. Hoe veel-op-veel-relatie-sequels opvragen?

  3. Hoe de grote objectgegevens van Postgres 9.4 dumpen en vervolgens importeren in Postgres8.x?

  4. SQL, Bij het verwijderen van cascade en bij het bijwerken van cascade