Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Nó nói rằng tôi không có hàng được chọn?

Có một số cách để làm điều này:

Bạn có thể sử dụng một anti-join, chẳng hạn như:

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

Một cách khác (và phương pháp ưa thích của tôi) để làm những gì bạn muốn là:

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;

Tuy nhiên, với dữ liệu bạn đã hiển thị truy vấn này, cũng như truy vấn ban đầu của bạn, sẽ trả về không hàng. SQLFiddle tại đây

Lưu ý rằng nếu bạn nhận xét khoản vay hiện tại cho thành viên 004, thì "Joe Brown" sẽ được trả lại SQLFiddle tại đây

Chúc may mắn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thiếu biểu thức khi chọn tất cả các cột và một cột khác

  2. Trong SQL, Làm cách nào để tạo mọi kết hợp duy nhất có thể có của 5! 56?

  3. Hằng số trong truy vấn SQL của Oracle

  4. Cách truy vấn dữ liệu khối lớn

  5. Truy vấn Cơ sở dữ liệu Oracle với tên Bảng động