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

Tìm bản ghi từ một bảng không tồn tại trong bảng khác

Có một số cách khác nhau để thực hiện việc này, với hiệu quả khác nhau, tùy thuộc vào mức độ tốt của trình tối ưu hóa truy vấn của bạn và kích thước tương đối của hai bảng của bạn:

Đây là câu lệnh ngắn nhất và có thể nhanh nhất nếu danh bạ điện thoại của bạn rất ngắn:

SELECT  *
FROM    Call
WHERE   phone_number NOT IN (SELECT phone_number FROM Phone_book)

cách khác (nhờ Alterlife )

SELECT *
FROM   Call
WHERE  NOT EXISTS
  (SELECT *
   FROM   Phone_book
   WHERE  Phone_book.phone_number = Call.phone_number)

hoặc (nhờ WOPR)

SELECT * 
FROM   Call
LEFT OUTER JOIN Phone_Book
  ON (Call.phone_number = Phone_book.phone_number)
  WHERE Phone_book.phone_number IS NULL

(bỏ qua điều đó, như những người khác đã nói, tốt nhất là chỉ chọn các cột bạn muốn, không chọ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. Cách lấy tháng từ ngày trong MySQL

  2. Cấp quyền cho người dùng MySQL trên Linux thông qua dòng lệnh

  3. Nhận chênh lệch múi giờ giữa hai thời điểm trong PHP

  4. Cách thực hiện xếp hạng theo nhóm trong MySQL

  5. 5 cách để kiểm tra xem một bảng có tồn tại trong MySQL hay không