Trong SQL Server (Transact-SQL), toán tử INTERSECT được dùng để làm trả về những phiên bản ghi phía trong cả 2 cỗ tài liệu hoặc lệnh SELECT. Nếu một bản ghi chỉ gồm vào một tầm nã vấn chứ đọng không tồn tại vào truy tìm vấn còn sót lại, nó đang bị loại vứt khỏi cỗ kết quả của INTERSECT.
Bạn đang xem: Intersect là gì
Truy vấn INTERSECT
Minh họa hiệu quả trả về từ bỏ truy vấn vấn INTERSECT
Giải thích: Truy vấn INTERSECT sẽ trả về những bản ghi bên trong khu vực sơn màu xanh lá cây. Các phiên bản ghi này bên trong cả CSDL1 với CSDL2.
Mỗi lệnh SELECT trong INTERSECT bắt buộc có cùng số cột trong cỗ công dụng cùng với thứ hạng dữ liệu như là nhau.
Cú pháp toán tử INTERSECT
SELECT bieu_thuc1, bieu_thuc2, … bieu_thucnFROM bangTên trở nên hoặc giá trị biến
bieu_thuc
Cột hoặc cực hiếm nhưng bạn muốn so sánh giữa 2 lệnh SELECT. Chúng ko tuyệt nhất thiết bắt buộc nằm trong cùng 1 trường thông tin nghỉ ngơi từng lệnh SELECT tuy vậy những cột tương ứng bắt buộc có tài liệu giống như nhau.
bang
Bảng mong đem phiên bản ghi từ đó. Phải bao gồm ít nhất 1 bảng trong mệnh đề FROM.
WHERE dieu_kien
Tùy lựa chọn. Điều khiếu nại đề xuất đáp ứng nhu cầu để bạn dạng ghi được chọn.
Lưu ý:
Hai lệnh SELECT cần tất cả thuộc số biểu thức.Cột tương ứng trong mỗi lệnh SELECT đề nghị tất cả thuộc giao diện tài liệu.Tân oán tử INTERSECT chỉ trả về phiên bản ghi ở tầm thường giữa những lệnh SELECT.lấy ví dụ như - với một biểu thức
SELECT sanpham_idFROM sanphamINTERSECT SELECT sanpham_idFROM hangtonkho;Ở ví dụ này, ví như sanpham_id xuất hiện thêm ở cả bảng sanpsay mê cùng hangtonkho thì nó đã nằm trong bộ công dụng của INTERSECT.
Giờ hãy thêm điều kiện WHERE vào truy nã vấn này.
SELECT sanpham_idFROM sanphamWHERE sanpham_id >= 50INTERSECT SELECT sanpham_idFROM hangtonkhoWHERE soluong > 0;Sở tài liệu lần đầu đã lọc với trả về các bản ghi nằm trong bảng sanpmê mẩn với sanpham_id lớn hơn hoặc bằng 50. Bộ tài liệu thứ 2 đang thanh lọc rước từ bảng hangtonkho nếu số lượng to hơn 0.
ví dụ như - với tương đối nhiều biểu thức
SELECT danhba_id, ho, tenFROM danhbaWHERE ho = ‘Anderson’INTERSECT SELECT nhanvien_id, ho, tenFROM nhanvien;Tại ví dụ này, truy vấn vấn đang trả về công dụng giao nhau từ 2 lệnh SELECT. Nếu gồm phiên bản ghi vào bảng danhbố mà lại danhba_id, ho, ten trùng với nhanvien_id, ho, ten trong bảng nhanvien thì tróc nã vấn INTERSECT đang trả về những bản ghi đó.
lấy ví dụ như - cần sử dụng ORDER BY
Dùng mệnh đề ORDER BY với tróc nã vấn INTERSECT để bố trí kết quả.
SELECT nhacung_id, nhacung_tenFROM nhacungWHERE nhacung_id > 500INTERSECT SELECT congty_id, congty_tenFROM congtyWHERE congty_ten in (‘Apple’, ‘Microsoft’, ‘SQL Server’)ORDER BY 2;
Vì thương hiệu cột ở 2 lệnh SELECT khác nhau đề xuất sẽ dễ hơn ví như tsi chiếu tới cột vào mệnh đề ORDER BY bởi địa chỉ của bọn chúng vào cỗ tác dụng. Ở ví dụ bên trên, ta lọc hiệu quả nhacung_ten / congty_ten theo sản phẩm công nghệ từ tăng dần qua nhiều tự ORDER BY 2.