Chủ Nhật, 5 Tháng Hai 2023
Trang chủPHP & MysqlMySQLTìm hiểu FULL OUTER JOIN trong MySQL - Học MySQL cơ bản

Tìm hiểu FULL OUTER JOIN trong MySQL – Học MySQL cơ bản

Tại bài viết trước chúng ta đã cùng nhau tìm hiểu mệnh đề JOIN trong MySQL và nắm được cách sử dụng ra sao, tuy nhiên khi chỉ sử dụng mệnh đề JOIN đơn thuần thì chưa thể kết hợp dữ liệu một cách triệt để nhất trong một số trường hợp đặt ra mong muốn.

Trong bài viết này, cũng như các bài viết sau chúng ta sẽ tiếp tục với mệnh đề JOIN với các keyword INNER JOIN, LEFT JOINRIGHT JOINCROSS JOIN, SELF JOIN,  FULL OUTER JOIN.

FULL OUTER JOIN trong MySQL

Từ khóa FULL OUTER JOIN được dùng để kết hợp những record giao nhau trong hai bảng. Và các record không giao nhau từ cả 2 bảng cũng sẽ được lấy, khi đó các record thuộc bảng 1 tham chiếu tới bảng 2 không tồn tại thì khi kết hợp các cột thuộc của bảng 2 sẽ có giá trị mặc định là NULL, và ngược lại thì các cột thuộc bảng 1 sẽ có giá trị NULL.

Giao nhau có thể tạm hiểu là khi cột của bảng này và bảng kia có cùng giá trị.

Tìm hiểu FULL OUTER JOIN trong MySQL - Học MySQL cơ bản
Hình ảnh minh họa FULL OUTER JOIN

>>XEM THÊM: Câu lệnh UPDATE trong MysQL – Lệnh sửa đổi dữ liệu bảng

Cú pháp

FULL OUTER JOIN có cú pháp như sau.

SELECT *
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name

Trong đó:

  • table1, table2: Tên bảng
  • column_name: tên cột liên kết của bảng.

Ví dụ sử dụng

Ta có 2 bảng là bảng posts và category như bên dưới.

  • Bảng category
Tìm hiểu FULL OUTER JOIN trong MySQL - Học MySQL cơ bản
  • Bảng posts
Tìm hiểu FULL OUTER JOIN trong MySQL - Học MySQL cơ bản

Sử dụng FULL OUTER JOIN để kết hợp dữ liệu 2 bảng. Viết SQL.

SELECT *
FROM posts
FULL OUTER JOIN category
ON posts.cate_id = category.id;

>>XEM THÊM: Câu lệnh DROP trong MySQL – Lệnh dùng xóa bảng, xóa Database

Kết quả khi thực hiện truy vấn.

*Lưu ý: Khi kết hợp bảng nếu tên các cột bị trùng nhau để phân biệt được bạn nên đặt lại tên cột trong select bằng thuộc tính AS nhé*

Như vậy ở 3 hàng đầu tiên, có cate_idid tại bảng category giao nhau nên dữ liệu khi kết hợp sẽ đầy đủ, dòng thứ 4 bài viết có cate_id 5 thì trong bảng category không có phân loại nào là id 5 nên các cột thuộc bảng 2 sẽ có giá giá trị NULL. Ngược lại dòng số 4, 2 dòng là dòng 5 và dòng 6 với hai thể loại bài viết là Tin tức và Quân sự đều không có bài viết nào nên khi kết hợp dữ liệu bảng các cột thuộc bảng 1 giá trị NULL.

Qua ví dụ đơn giản này hy vọng đã giúp bạn nắm được câu lệnh FULL OUTER JOIN.

Cảm ơn bạn đã đọc hết bài viết! Chúc bạn học tốt!

[XEM TẤT CẢ CÁC BÀI HƯỚNG DẪN MYSQL TẠI ĐÂY]

XEM THÊM
Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng
Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới
Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL
Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT
Toán tử so sánh trong MySQL – So sánh bằng, lớn hơn, nhỏ hơn
0 0 Phiếu bình chọn
Xếp hạng bài viết
BÀI VIẾT LIÊN QUAN
Đăng ký nhận thông báo
Thông báo email khi
guest
0 Bình luận
Không thể gửi email
Phản hồi nội tuyến

NÊN ĐỌC THÊM

Bạn muốn tìm kiếm gì?


0
Giáo sư! có thể ném gạch bên dưới nhé!x
()
x