Tôi tò mò về cách hiệu quả nhất để loại trừ truy vấn trên sql. Ví dụ. Có 2 bảng (tableA và tableB) có thể được nối trên 1 cột (col1). Tôi muốn hiển thị dữ liệu của tableA cho tất cả các hàng mà col1 không tồn tại trong tableB.SQL: So sánh hiệu suất để loại trừ (Tham gia vs Không in)
(Vì vậy, nói cách khác, TableB chứa một tập hợp con của col1 của tableA. Và tôi muốn hiển thị tableA không có dữ liệu tồn tại trong TableB)
Hãy nói rằng TableB có 100 dòng trong khi tableA là khổng lồ (hơn hơn 1 triệu hàng). Tôi biết 'Không ở trong (không tồn tại)' có thể được sử dụng nhưng có lẽ có những cách hiệu quả hơn (ít thời gian hơn) để làm điều đó.? Tôi không có thể với tham gia bên ngoài?
Đoạn mã và nhận xét được đánh giá cao.
DBMS nào? SQL Server, MySQL, Oracle? Khả năng của trình tối ưu hóa truy vấn trong các khác biệt này. –
Oracle. Tôi sẽ ngạc nhiên nếu có sự khác biệt về hiệu suất đáng kể so với các DBMS khác nhau. – someone
Vâng, bạn sẽ ngạc nhiên. :) – Unreason