Khi làm việc với cơ sở dữ liệu MySQL, nhiều tình huống yêu cầu bạn kết hợp dữ liệu từ nhiều bảng khác nhau. Để thực hiện điều này, lệnh JOIN được sử dụng. Trong lệnh JOIN, điều kiện JOIN được xác định thông qua từ khóa ON, giúp chỉ định cách mà các bảng sẽ được kết hợp với nhau. Với điều kiện cụ thể này, bạn có thể kiểm soát chính xác cách dữ liệu từ các bảng khác nhau được liên kết.
-
Khái niệm cơ bản về JOIN:
- INNER JOIN: Trả về các hàng khi có sự phù hợp trong cả hai bảng.
- LEFT JOIN (hoặc LEFT OUTER JOIN): Trả về tất cả các hàng từ bảng bên trái và các hàng phù hợp từ bảng bên phải. Nếu không có hàng nào phù hợp thì kết quả sẽ chứa NULL cho bên bảng phải.
- RIGHT JOIN (hoặc RIGHT OUTER JOIN): Trả về tất cả các hàng từ bảng bên phải và các hàng phù hợp từ bảng bên trái. Nếu không có hàng nào phù hợp thì kết quả sẽ chứa NULL cho bên bảng trái.
- FULL JOIN (hoặc FULL OUTER JOIN): Trả về tất cả các hàng khi có sự phù hợp trong một trong hai bảng. Thật không may, MySQL hiện không hỗ trợ FULL OUTER JOIN, nhưng có thể đạt được cùng một kết quả bằng cách sử dụng một kết hợp của LEFT JOIN và RIGHT JOIN với UNION.
-
Cú pháp cơ bản của JOIN:
SELECT column_names FROM table1 JOIN table2 ON table1.common_column = table2.common_column;
Trong cú pháp này,
table1.common_column
vàtable2.common_column
là các cột được sử dụng để kết nối hai bảng. -
Ví dụ thực tế: Giả sử chúng ta có hai bảng:
students
vàcourses
.Bảng
students
:student_id student_name 1 Alice 2 Bob 3 Charlie Bảng
courses
:course_id student_id course_name 1 1 Mathematics 2 2 English 3 1 Science Để kết hợp hai bảng này và lấy thông tin về tên học sinh và các khóa học mà họ đã đăng ký, chúng ta có thể sử dụng INNER JOIN với từ khóa ON như sau:
SELECT students.student_name, courses.course_name FROM students INNER JOIN courses ON students.student_id = courses.student_id;
Kết quả sẽ là:
student_name course_name Alice Mathematics Alice Science Bob English -
Điều kiện JOIN phức tạp hơn: Bạn không bị giới hạn với một điều kiện JOIN duy nhất. Bạn có thể sử dụng nhiều điều kiện và các phép so sánh khác nhau để tinh chỉnh cách mà các bảng của bạn được kết hợp.
SELECT students.student_name, courses.course_name FROM students JOIN courses ON students.student_id = courses.student_id AND courses.course_id > 1;
Đây là ví dụ với một điều kiện bổ sung: chỉ lấy các khóa học có
course_id
lớn hơn 1. -
Sử dụng các phép JOIN khác:
-
Để sử dụng LEFT JOIN:
SELECT students.student_name, courses.course_name FROM students LEFT JOIN courses ON students.student_id = courses.student_id;
Kết quả sẽ bao gồm tất cả học sinh, ngay cả khi họ không có khóa học đăng ký.
-
Để sử dụng RIGHT JOIN:
SELECT students.student_name, courses.course_name FROM students RIGHT JOIN courses ON students.student_id = courses.student_id;
Kết quả sẽ bao gồm tất cả các khóa học, ngay cả khi không có học sinh nào đăng ký khóa học đó.
-
-
Lời kết: Việc sử dụng lệnh JOIN và cách xác định điều kiện JOIN với từ khóa ON trong MySQL là một kỹ năng quan trọng để làm việc hiệu quả với cơ sở dữ liệu. Bằng cách hiểu rõ các loại JOIN và cách cấu hình điều kiện JOIN, bạn sẽ có thể trích xuất dữ liệu một cách hiệu quả và chính xác từ nhiều bảng trong cơ sở dữ liệu của mình.
Comments