Định nghĩa Non-equi Joins trong SQL
Non-Equi Joins là lệnh Joins trong SQL có điều kiện được thiết lập bằng cách sử dụng tất cả các toán tử so sánh trừ toán tử bằng “=”. Các toán tử so sánh ngoài toán tử “=” có thể là “> =”, “<=” , ”><”, “>”, “<”.Ứng dụng Non-equi Joins trong SQL – Học SQL cơ bản
- Cú pháp câu lệnh Non-equi Joins trong SQL
SELECT bảng1.ᴄột</em> <em>, bảng2.ᴄột </em> <em>FROM bảng1</em> <em>JOIN bảng2</em> <em>WHERE bảng1.ᴄột1 </em><em>[ > | < | >= | <= ]</em><em> bảng2.ᴄột2
- Ví dụ
SELECT Product1.ProductAlternateKey as ProductA , Product2.ProductAlternateKey as ProductB , COUNT(Sales1.SalesOrderNumber) as CountofOrders FROM FactInternetSales as Sales1 JOIN FactInternetSales as Sales2 ON Sales1.SalesOrderNumber = Sales2.SalesOrderNumber AND Sales1.SalesOrderLineNumber > Sales2.SalesOrderLineNumber JOIN DimProduct as Product1 on Product1.ProductKey = Sales1.ProductKey JOIN DimProduct as Product2 on Product2.ProductKey = Sales2.ProductKey GROUP BY Product1.ProductAlternateKey, Product2.ProductAlternateKey ORDER BY CountofOrders DESCTrong ví dụ này, khi hai bảng Sales1 và Sales 2 kết nối với nhau, ngoài điều kiện Sales1.SalesOrderNumber = Sales2.SalesOrderNumber còn có thêm một điều kiện khác được nối bằng chữ AND là Sales1.SalesOrderLineNumber > Sales2.SalesOrderLineNumber. Đây chính là lệnh Non-equi Joins trong SQL. Việc có thêm điều kiện này giúp kết quả trả về hai sản phẩm là hai sản phẩm khác nhau, tránh trường hợp sản phẩm trong cùng một giỏ hàng bị trùng lặp.

Ảnh 1: Câu lệnh truy vấn và kết quả trả về khi không sử dụng Non-equi Joins
Từ ảnh 1, chúng ta có thể nhận thấy nếu không sử dụng Non-equi Joins thì sẽ có những hàng có kết quả trả về mà sản phẩm trong ProductA giống với sản phẩm trong ProductB. Hay sẽ có những kết quả bị trả về thành hai bản giống nhau, chỉ đổi chỗ ProductA và ProductB. Tuy nhiên, sang đến ảnh 2, việc sử dụng Non-equi Joins đã khắc phục được những lỗi đó.
Ảnh 2: Câu lệnh truy vấn và kết quả trả về khi sử dụng Non-equi Joins
- Ứng dụng