Hiểu về SQL Full Join
Trong ngôn ngữ lập trình SQL, JOIN là một kỹ thuật để kết hợp dữ liệu từ hai hoặc nhiều bảng dựa trên một điều kiện liên quan giữa chúng. Một trong những loại JOIN phổ biến là FULL JOIN (hay FULL OUTER JOIN), cho phép bạn lấy tất cả các bản ghi từ cả hai bảng, bất kể chúng có một điều kiện khớp nào hay không.
Định nghĩa
FULL JOIN trả về tất cả các hàng từ bảng bên trái và bên phải. Nếu không có sự tương ứng giữa hàng trong hai bảng, kết quả sẽ chứa NULL cho các cột từ bảng mà không có dữ liệu tương ứng.
Cú pháp
SELECT column1, column2, ... FROM table1 FULL JOIN table2 ON table1.common_column = table2.common_column;
Ví dụ
Giả sử, chúng ta có hai bảng sau đây:
Bảng A: +----+-------+ | ID | Name | +----+-------+ | 1 | Alice | | 2 | Bob | | 3 | Carol | +----+-------+ Bảng B: +----+--------+ | ID | City | +----+--------+ | 2 | New York | | 3 | Los Angeles | | 4 | Chicago | +----+--------+
Chúng ta sẽ thực hiện một FULL JOIN giữa Bảng A và Bảng B dựa trên cột ID:
SELECT A.ID, A.Name, B.City FROM A FULL JOIN B ON A.ID = B.ID;
Kết quả của truy vấn trên sẽ là:
+----+-------+-------------+ | ID | Name | City | +----+-------+-------------+ | 1 | Alice | NULL | | 2 | Bob | New York | | 3 | Carol | Los Angeles | | 4 | NULL | Chicago | +----+-------+-------------+
Trong kết quả, bạn có thể thấy rằng:
- Đối với bản ghi ID = 1 (Alice), không có bản ghi tương ứng trong Bảng B, do đó cột City nhận giá trị NULL.
- Đối với bản ghi ID = 2 (Bob), có một bản ghi tương ứng trong Bảng B với thành phố New York.
- Đối với bản ghi ID = 3 (Carol), có một bản ghi tương ứng trong Bảng B với thành phố Los Angeles.
- Bản ghi ID = 4 trong Bảng B không có bản ghi tương ứng trong Bảng A, do đó cột Name nhận giá trị NULL.
Kết luận
FULL JOIN là một công cụ mạnh mẽ trong SQL để lấy dữ liệu từ nhiều bảng, cho phép bạn kết hợp thông tin ngay cả khi không có sự tương ứng giữa các bản ghi. Hiểu rõ về FULL JOIN sẽ giúp bạn tạo ra các truy vấn phức tạp hơn và quản lý dữ liệu hiệu quả hơn trong cơ sở dữ liệu của mình.