SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
Q :Điều gì đang xảy ra ở đây?
Đ :Về mặt khái niệm, chúng tôi chọn tất cả các hàng từ table1
và đối với mỗi hàng, chúng tôi cố gắng tìm một hàng trong table2
có cùng giá trị cho name
cột. Nếu không có hàng như vậy, chúng tôi chỉ để lại table2
phần kết quả của chúng tôi trống cho hàng đó. Sau đó, chúng tôi hạn chế lựa chọn của mình bằng cách chỉ chọn những hàng trong kết quả mà hàng phù hợp không tồn tại. Cuối cùng, Chúng tôi bỏ qua tất cả các trường khỏi kết quả của chúng tôi ngoại trừ name
(cột mà chúng tôi chắc chắn rằng tồn tại, từ table1
).
Mặc dù nó có thể không phải là phương pháp hiệu quả nhất có thể trong mọi trường hợp, nhưng về cơ bản nó sẽ hoạt động trong mọi công cụ cơ sở dữ liệu cố gắng triển khai ANSI 92 SQL