Menu
CoddyTech

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.

challenge icon

Thử thách

Dễ

Các bảng và cột hiện có:

  • newsletter: email, active
  • premium: email, 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
quiz iconTự kiểm tra

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

Tự luyện tập: Playground SQL