Các Loại Join Trong MySQL – Hướng Dẫn Toàn Diện - TTW Marketing

Các Loại Join Trong MySQL – Hướng Dẫn Toàn Diện

Các Loại Join Trong MySQL

Trong lập trình và quản lý cơ sở dữ liệu, JOIN trong MySQL là một trong những khái niệm cốt lõi. JOIN cho phép kết hợp dữ liệu từ nhiều bảng dựa trên mối quan hệ giữa các cột. Trong bài viết này, chúng ta sẽ tìm hiểu các loại JOIN trong MySQL và cách sử dụng chúng.


1. INNER JOIN

INNER JOIN là loại JOIN phổ biến nhất, chỉ trả về các bản ghi có mối quan hệ tương ứng giữa hai bảng.

Cú pháp:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

Ví dụ: Giả sử bảng studentscourses, INNER JOIN sẽ kết nối các học sinh và các khoá học mà họ đang tham gia.

SELECT students.name, courses.course_name
FROM students
INNER JOIN courses
ON students.course_id = courses.id;

2. LEFT JOIN (OR LEFT OUTER JOIN)

LEFT JOIN trả về tất cả các bản ghi từ bảng bên trái (table1), kể cả khi không có mối quan hệ tương ứng trong bảng bên phải (table2).

Cú pháp:

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

Ví dụ: Lễ kê danh sách học sinh và khoá học có thể tham gia, kể cả khi không tham gia khoá nào.

SELECT students.name, courses.course_name
FROM students
LEFT JOIN courses
ON students.course_id = courses.id;

3. RIGHT JOIN (OR RIGHT OUTER JOIN)

RIGHT JOIN tương tự như LEFT JOIN, nhưng trả về tất cả các bản ghi từ bảng bên phải (table2), kể cả khi không có mối quan hệ tương ứng trong bảng bên trái (table1).

Cú pháp:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

Ví dụ: Lễ kê danh sách tất cả khoá học, bao gồm cả những khoá chưa có học sinh tham gia.

SELECT students.name, courses.course_name
FROM students
RIGHT JOIN courses
ON students.course_id = courses.id;

4. FULL JOIN (FULL OUTER JOIN)

FULL JOIN trả về tất cả các bản ghi từ cả hai bảng, bao gồm cả những bản ghi không có mối quan hệ trong bảng kia.

Cú pháp:

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;

Ví dụ: Hiển thị danh sách tất cả học sinh và khoá học, kể cả khi học sinh hoặc khoá học không liên quan tới nhau.

SELECT students.name, courses.course_name
FROM students
FULL OUTER JOIN courses
ON students.course_id = courses.id;

Lưu ý: MySQL hiện tại không hỗ trợ FULL OUTER JOIN một cách trực tiếp, nhưng có thể giải quyết bằng UNION.


5. CROSS JOIN

CROSS JOIN két hợp tất cả các bản ghi trong hai bảng, tạo thành bảng kết quả cố định.

Cú pháp:

SELECT column_name(s)
FROM table1
CROSS JOIN table2;

Ví dụ: Kết hợp tất cả học sinh và khoá học mà không xét tới mối quan hệ giữa chúng.

SELECT students.name, courses.course_name
FROM students
CROSS JOIN courses;

Hiểu rõ các loại JOIN trong MySQL sẽ giúp bạn tối ưu hoá câu truy vấn SQL và xử lý dữ liệu hiệu quả hơn. Tuỳ thuật INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN và CROSS JOIN phụ thuộc vào tình huống cụ thể, vì vậy, bạn hãy chọn loại JOIN phù hợp để tối đa hiệu suất và đạt mục tiêu công việc.

 

Video tham khảo thêm:

Hiểu rõ các loại JOIN trong MySQL

 

Đánh giá post