sql >> Databáze >  >> RDS >> Oracle

Říká, že nemám vybraný řádek?

Existuje několik způsobů, jak to udělat:

Můžete použít anti-join, například:

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

Další způsob (a můj preferovaný způsob), jak dělat to, co chcete, je:

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;

Vzhledem k údajům, které jste zobrazili, by však tento dotaz, stejně jako váš původní dotaz, měl vrátit nula řádků. SQLFiddle zde

Všimněte si, že pokud okomentujete aktuální půjčku členovi 004, vrátí se „Joe Brown“ SQLFiddle zde

Hodně štěstí.




  1. Odstraňte entitu v EF4 bez načtení celé entity

  2. Žádný vhodný řidič. Pokus o připojení k databázi postgresql na Heroku pomocí Hibernate

  3. Jaký je rozdíl mezi dočasnou tabulkou a proměnnou tabulky na serveru SQL?

  4. jak se dotazovat na moji databázi a nechat ji vytisknout na Google Sheet, aby někdo mohl tato data upravit a poté je promítnout zpět do MySQL?