INTERSECT
Thuộc phần Vượt ra ngoài kiến thức cơ bản trong hành trình SQL của Coddy. Bài học 17 trên 27.
INTERSECT chỉ trả về các hàng xuất hiện trong cả hai tập kết quả. Giống như UNION, toán tử này loại bỏ các hàng trùng lặp và yêu cầu các cột ở mỗi bên phải khớp nhau.
SELECT email FROM newsletter_subs
INTERSECT
SELECT email FROM premium_usersĐó là tất cả địa chỉ email vừa đăng ký nhận bản tin vừa thuộc người dùng cao cấp, mà không cần viết câu lệnh join.
Tại sao phải bận tâm, khi JOIN cũng làm được việc này? INTERSECT ngắn gọn hơn khi cả hai vế đều là các câu lệnh SELECT đơn giản và bạn so khớp toàn bộ hàng, chứ không chỉ một id.
Thử thách
DễCác bảng và cột hiện có:
newsletter:activepremium:plan
Trả về các địa chỉ email xuất hiện trong danh sách người đăng ký nhận bản tin đang hoạt động (active = 1) và là người dùng cao cấp có gói 'pro'. Sắp xếp theo thứ tự bảng chữ cái.
Tự làm thử
-- Lọc từng bên trước khi dùng INTERSECT
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Vượt ra ngoài kiến thức cơ bản
6Công thức phân tích dữ liệu
Top N trong mỗi nhómTỷ lệ trên tổngTổng lũy kếGiữ lại một hàng cho mỗi khóaÔn tập: khách hàng hàng đầuTự luyện tập: Playground SQL