Posts Tagged ‘JOIN’

 

Ứng Dụng của Join Bất Cân Bằng

Tiếp theo bài viết Cẩn thận với Join bất cân bằng, bài viết này mô tả một trường hợp thường gặp có thể xử lý bằng Join bất cân bằng (còn được gọi bằng Non Equi-Joins).
Đó là những bài toán liên quan đến cách tính bậc thang.
Ví dụ giá điện dùng trong khoảng 0-100 thì áp mức giá 100 cho 1 số, từ 101 – 200 lại áp mức giá 200. Cần tính tiền cho từng khách hàng với số điện dùng trong tháng.
Hoặc trong viễn thông, áp giá cho cuộc gọi từ 0-10 giây đầu là 1 đồng, từ giây thứ 11 là 2 đồng… Trong bưu chính, khối lượng hàng hóa từ 0-200g thì mức giá là 1000 đồng, từ 200-400g là 2000 đồng…
Để giải quyết bài toán này có nhiều cách, một trong số những cách thức hiệu quả là sử dụng Join bất cân bằng vì những ưu điểm sau:
- Xử lý hàng loạt, không sử dụng Cursor
- Có thể cài đặt bằng SQL, thuận tiện khi triển khai trên những hệ thống khác ngoài SQL Server như Oracle, MySQL…

MÔ TẢ BẢNG … đọc tiếp »

Posted on 29/9/2014 by Guess Post: Vũ Minh Tâm | Categories: SQL Server Programming

Cẩn Thận Với Join Bất Cân Bằng

Thông thường khi viết lệnh JOIN, trong biểu thức ở mệnh đề join bạn dùng toán tử “=”. Kiểu join này tạm gọi là join cân bằng, còn kiểu join tạm gọi là bất cân bằng là khi biểu thức ở mệnh đề join dùng các toán tử bất cân bằng như >, < , !=... … đọc tiếp »

Posted on 10/9/2014 by Vũ Huy Tâm | Categories: SQL Server Programming

Một Vài Kiểu Viết Join

Bài viết này nhằm phản hồi lại comment của bạn NANIA trong bài Các Loại JOIN Trong SQL Server. Tôi đã có thể viết lại một comment, nhưng vì muốn kèm theo một vài hình, đồng thời nhận thấy đây là một pattern khá phổ biến khi lập trình T-SQL nên mới viết thành một bài riêng. Hy vọng có thể giúp một số bạn hiểu thêm về cơ chế hoạt động của bộ Optimizer. … đọc tiếp »

Posted on 15/3/2011 by Vũ Huy Tâm | Categories: Performance tuning, SQL Server Programming

Các Cơ Chế Thực Thi Lệnh JOIN

Tiếp theo bài Các Loại JOIN Trong SQL Server, bài này giới thiệu về các cơ chế bên trong SQL Server sử dụng để xử lý các câu truy vấn JOIN. Về cơ bản khi thực hiện câu lệnh JOIN, SQL Server duyệt qua hai bảng tham gia vào, lấy ra từng cặp bản ghi để so sánh, rồi trả về tập kết quả nếu thỏa mãn điều kiện JOIN hoặc loại bỏ nếu không thỏa mãn. SQL Server cài đặt một vài thuật toán khác nhau, thích hợp với các tình huống khác nhau (như số lượng bản ghi cần so sánh nhiều hay ít, cột JOIN có index hay không…). Các thuật toán đó là Nested Loop Join, Merge Join, và Hash Join. … đọc tiếp »

Các Loại JOIN Trong SQL Server

JOIN là phép kết nối dữ liệu từ nhiều bảng lại với nhau. Khi bạn cần truy vấn các cột dữ liệu từ nhiều bảng khác nhau để trả về trong cùng một tập kết quả, bạn cần dùng JOIN. Đây có lẽ là chức năng được dùng nhiều nhất khi lập trình T-SQL. Nó giúp tái hiện lại thông tin thế giới thực từ dữ liệu lưu trữ trong mô hình quan hệ. Ví dụ, bạn cần JOIN bảng BanHang với bảng SanPham thông qua SanPhamID để lấy về thông tin đầy đủ của một đơn hàng bao gồm cả tên sản phẩm, vì người dùng cần quan tâm đến sản phẩm đó là gì thay vì mã hiệu của nó.
SQL Server cung cấp các kiểu JOIN là INNER JOIN, OUTER JOIN, và CROSS JOIN. … đọc tiếp »

Posted on 27/10/2010 by Vũ Huy Tâm | Categories: SQL Server Programming

Update Dữ Liệu Của Bảng Từ Bảng Khác

Với hai bảng TableA(Col1, Col2) và TableB(Col1, Col2), khi cần update cột Col2 từ bảng B sang bảng A cho những bản ghi có cùng giá trị Col1, ta có thể làm thế này:

UPDATE a
SET a.Col2 = b.Col2
FROM dbo.TableA a 
JOIN dbo.TableB ON a.Col1 = b.Col1
Posted on 12/6/2010 by Vũ Huy Tâm | Categories: SQL Server Programming