Oracle
 sql >> база данни >  >> RDS >> Oracle

Казва, че нямам избран ред?

Има няколко начина да направите това:

Можете да използвате анти-съединяване, като например:

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, тогава се връща „Joe Brown“ SQLFiddle тук

Успех.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да получа пълната дефиниция (sql) на системни изгледи като user_objects?

  2. Как да нулирам последователност в Oracle?

  3. Как да разширя Liquibase за генериране на журнали за промени със съхранени процедури, функции и тригери?

  4. JPA картографиране към дефинирани от потребителя типове на Oracle

  5. Как да определите типа на sql заявката за jdbcTemplate в JAVA?