Ở bài viết này, LPTech sẽ cho bạn biết OUTER JOIN và INNER JOIN trong SQL là gì. Đồng thời còn hướng dẫn bạn cách sử dụng các loại JOIN một cách chính xác nhất. Tham khảo bài viết ngay để tích lũy thêm nhiều kiến thức hữu về câu lệnh truy vấn JOIN trong SQL bạn nhé.
JOIN trong SQL là gì?
Ngôn ngữ truy vấn có cấu trúc (SQL) là ngôn ngữ lập trình được nghiên cứu và phát triển nhằm để lưu trữ, xử lý cũng như trích xuất những dữ liệu có trong các cơ sở dữ liệu quan hệ. Dạng ngôn ngữ lập trình này có thể hoạt động với nhiều hệ quản trị cơ sở dữ liệu (DBMS) như: MySQL, SQL Server, Informix, Postgres, MS Access, Oracle, Sybase,...
Toán tử JOIN sẽ giúp người dùng kết hợp được các thông tin có liên quan thông qua nhiều cách thức khác nhau. JOIN được biết đến phổ biến với hai loại kết nối chính là kết nối INNER và kết nối OUTER.
> Xem thêm:
- SQL Server là gì? Hướng dẫn tải và cài dặt SQL Server
- SQL Injection là gì? Cách bảo mật website trước lỗ hổng này
Cách sử dụng INNER JOIN trong SQL
INNER JOIN trong SQL là dạng JOIN phổ biến và thường được sử dụng nhất. Nó thực hiện việc trả về các bản ghi có giá trị khớp trong hai bảng và loại bỏ đi các bản ghi có giá trị không khớp.
INNER JOIN trong SQL có tác dụng lọc những dữ liệu liên quan và chính xác từ các bảng. Nhờ vậy mà tránh được tình trạng dữ liệu bị thừa hoặc là bị sai lệch. Ngoài ra, INNER JOIN còn có thể tối ưu hóa hiệu năng của truy vấn, rút ngắn thời gian xử lý và tăng tốc độ trả về kết quả.
Như hình bên dưới, phép nối sẽ giữ lại thông tin từ hai bảng đã nối có liên quan với nhau. Ví dụ hai bảng dưới là dạng sơ đồ Venn, kết quả nhận được từ INNER JOIN là khu vực màu xanh lá cây, chồng chéo lên nhau.
Cú pháp INNER JOIN trong SQL:
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Cú pháp INNER JOIN nhiều table:
SELECT column_list
FROM table1
INNER JOIN table2 ON join_condition1
INNER JOIN table3 ON join_condition2
Ví dụ: chúng ta dùng INNER JOIN để kết hợp dữ liệu từ hai bảng BảngA và BảngB:
SELECT BảngA.cột1, BảngB.cột2
FROM BảngA
INNER JOIN BảngB ON BảngA.khóa_chung = BảngB.khóa_chung;
Cách sử dụng OUTER JOIN trong SQL
Trong trường hợp người dùng không chỉ muốn giữ lại những dữ liệu có liên quan, mà còn muốn giữ lại nhiều hơn thế thì nên sử dụng đến phép nối OUTER. OUTER JOIN trong SQL có ba loại bao gồm: RIGHT JOIN, LEFT JOIN, và FULL JOIN.
Ba loại này có sự khác biệt chủ yếu là ở những dữ liệu không liên quan mà chúng lưu giữ. Đó là ở bảng thứ nhất, thứ hai hoặc là ở cả hai bảng. Với những ô không có dữ liệu cần điền thì sẽ có giá trị là NULL. Cùng tìm hiểu về ba loại OUTER JOIN trong SQL và cách sử dụng chúng ngay bên dưới đây bạn nhé.
LEFT OUTER JOIN (LEFT JOIN) trong SQL
Khi bạn sử dụng hàm LEFT JOIN trong SQL, ngoài giữ lại dữ liệu liên quan của hai bảng thì nó còn dữ lại dữ liệu không liên quan của bảng đầu tiên (bảng bên trái). Tức là như hình bên dưới, khi bạn sử dụng sơ đồ Venn với hai vòng tròn. Kết quả bạn nhận được sẽ là phần màu xanh lá cây, gồm có phần chồng chéo của hai vòng tròn và cả phần của vòng tròn bên trái.
Câu lệnh LEFT JOIN trong SQL:
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
LEFT JOIN cũng có thể join nhiều table:
SELECT column_list
FROM table1
LEFT JOIN table2 ON join_condition1
LEFT JOIN table3 ON join_condition2
RIGHT OUTER JOIN (RIGHT JOIN) trong SQL
RIGHT OUTER JOIN hay còn được gọi đơn giản là RIGHT JOIN. Khi sử dụng RIGHT JOIN, ngoài dữ liệu liên quan thì nó còn giữ lại dữ liệu có trong bảng thứ hai. Trong sơ đồ Venn có hai vòng tròn như hình bên dưới, kết quả nhận được là khu vực màu xanh lá cây. Khu vực này bao gồm dữ liệu chung của hai vòng tròn và dữ liệu không liên quan trong vòng tròn thứ 2 (vòng tròn bên phải).
Cú pháp của RIGHT OUTER JOIN trong SQL:
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;
Vẫn với data 2 bảng trên các bạn hãy thử chạy câu lệnh RIGHT JOIN nhé!
RIGHT JOIN cũng có thể join nhiều table
SELECT column_list
FROM table1
RIGHT JOIN table2 ON join_condition1
RIGHT JOIN table3 ON join_condition2
FULL OUTER JOIN (FULL JOIN) trong SQL
FULL OUTER JOIN trong SQL chính là sự kết hợp của RIGHT JOIN và LEFT JOIN. Tức là nó sẽ giữ lại tất cả các dữ liệu có trong hai bảng. Với dữ liệu còn thiếu thì sẽ được điền bằng giá trị NULL.
Như hình bên dưới với sơ đồ Venn có hai vòng tròn. Kết quả nhận được là khu vực được đánh dấu màu xanh lá cây. Khu vực này bao gồm phần dữ liệu chồng chéo lên nhau của hai bảng và phần dữ liệu không liên quan của bảng bên trái lẫn bên phải.
Cú pháp FULL OUTER JOIN trong SQL:
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name
WHERE condition;
Qua bài viết ở trên, LPTech đã cung cấp đến bạn những thông tin hữu ích về OUTER JOIN và INNER JOIN trong SQL. Giúp bạn biết được cách sử câu lệnh truy vấn JOIN có trong SQL sau cho hiệu quả và chính xác. Đừng quên thường xuyên theo dõi những bài viết khác của LPTech để cập nhật những kiến thức bổ ích bạn.
Thông tin liên hệ
Nếu bạn có thắc mắc gì, có thể gửi yêu cầu cho chúng tôi, và chúng tôi sẽ liên lạc lại với bạn sớm nhất có thể .
Công ty TNHH TMĐT Công nghệ LP
Giấy phép kinh doanh số 0315561312/GP bởi Sở Kế Hoạch và Đầu Tư TP. Hồ Chí Minh.
Văn phòng: Lầu 4, Toà nhà Lê Trí, 164 Phan Văn Trị, Phường 12,Quận Bình Thạnh, HCMC
Hotline: 0338 586 864
Mail: sales@lptech.asia
Zalo OA:LP Tech Zalo Official
Zalo Sales:033 85 86 86 64 (Sales)