SELF JOIN trong SQL

Nội dung lần này chúng ta sẽ cùng tìm hiểu về SELF JOIN, ý nghĩa, cú pháp và ví dụ trong bài sẽ giúp các bạn hiểu và có thể ứng dụng trong thực tiễn.

1. Ý nghĩa của SELF JOIN

SELF JOIN là một cách ghép dữ liệu bình thường nhưng thay vì ghép với bảng khác, nó sẽ tự ghép với chính mình.

  • Cú pháp:

SELECT tên một hoặc nhiều cột

FROM bảng1 T1, bảng2 T2

WHERE điều kiện;

Trong đó, T1 và T2 là các bí danh khác dành cho cùng một bảng, để dễ hình dung hãy xem ví dụ dưới đây.

2. Ví dụ SELF JOIN

Để thực hiện ví dụ này, bạn cần nhập cơ sở dữ liệu mẫu Northwind vào SQL Server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây:

Tham khảo: Hướng dẫn tải và cài đặt dữ liệu mẫu Northwind trong SQL Server Management Studio

Câu lệnh SQL dưới đây sẽ lấy ra các khách hàng ở cùng thành phố:

SELECT A.CompanyName AS CustomerName1, B.CompanyName AS CustomerName2, A.City

FROM Customers A, Customers B

WHERE A.CustomerID <> B.CustomerID AND A.City = B.City

ORDER BY A.City;

Kết quả là chúng ta thu được một bảng có ba cột đều lấy từ bảng Customers. Trong đó, gọi bảng Customers lần lượt là A và B (tương ứng T1, T2 trong cú pháp). Gọi CompanyName của bảng Customer A là CustomerName1 và CompanyName của bảng Customer B là CustomerName2. Điều kiện là nếu CustomerID từ bảng A khác CustomerID từ bảng B và City của hai bảng trùng khớp thì lấy.

Lưu ý: Trong câu lệnh SQL trên, nếu không có điều kiện CustomerID khác nhau (A.CustomerID <> B.CustomerID) sẽ phát sinh trường hợp một người ở cùng hai cột CustomerName. Nguyên nhân là chúng ta đang lấy dữ liệu từ cùng một bảng, hãy xem ảnh dưới đây.

Có thể thấy rằng, so với các loại JOIN khác trong SQL thì SELF JOIN cần có điều kiện để lấy được dữ liệu chính xác thay vì một từ khóa. Để không bỏ lỡ những kiến thức hữu ích về SQL nói riêng và dữ liệu nói chung, đừng quên đón đọc các bài viết mới nhất tại website BAC’s Blog.

Nguồn tham khảo:
https://www.w3schools.com/

Nhu cầu đào tạo doanh nghiệp

BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo: 

 

 

Previous Post
Next Post
Exit mobile version