INNER JOIN

Đã hoàn thành

Nối bảng

Trong các cơ sở dữ liệu quan hệ, dữ liệu thường được sắp xếp thành nhiều bảng để giảm thiểu sự dư thừa và tăng cường tính toàn vẹn dữ liệu. Phương pháp thiết kế này, được gọi là chuẩn hóa, tránh lặp lại các thông tin tương tự ở những nơi khác nhau. Tuy nhiên, điều này có nghĩa là thông tin hữu ích thường được phân bố trên nhiều bảng.

Nối là các thao tác SQL cần thiết giúp kết nối khoảng cách này, cho phép bạn kết hợp các hàng từ hai hoặc nhiều bảng và truy xuất dữ liệu liên quan trong một tập kết quả hợp nhất duy nhất. Về bản chất, kết nối cho phép bạn truy vấn thông tin được kết nối lô-gic nhưng được phân tách về mặt vật lý. Chúng đạt được sự kết hợp này bằng cách xác định và khớp các hàng dựa trên các giá trị được tìm thấy trong một hoặc nhiều cột phổ biến giữa các bảng. Các cột chung này thường đóng vai trò là nối kết giữa khóa chính trong một bảng và khóa ngoại ở bảng khác, thiết lập các mối quan hệ được xác định trong sơ đồ cơ sở dữ liệu.

Lưu ý: Khóa chính là mã định danh duy nhất cho mỗi bản ghi trong bảng, đảm bảo rằng không có hàng nào có cùng giá trị trong cột này. Một khóa ngoại, mặt khác, là một cột trong một bảng tham chiếu khóa chính trong một bảng khác, do đó liên kết hai bảng.

Có nhiều 'hương vị' của các liên kết (INNER, LEFT, RIGHT, FULL OUTER, NATURAL), mỗi được thiết kế để kết hợp các bảng theo những cách hơi khác nhau. Chúng cung cấp quyền kiểm soát những hàng nào được bao gồm trong tập kết quả dựa trên sự hiện diện hoặc không có các giá trị khớp trong các bảng đã nối.

INNER JOIN

An INNER JOIN là một trong các kiểu kết nối SQL thường được sử dụng nhất. Nó kết hợp các hàng từ nhiều bảng dựa trên một điều kiện xác định các giá trị khớp trong một cột được chia sẻ.

Khi thực hiện INNER JOIN, chỉ những hàng thỏa mãn điều kiện từ cả hai bảng mới được đưa vào bộ kết quả, lọc ra mọi dữ liệu không khớp một cách hiệu quả. Điều này lý INNER JOIN tưởng cho việc truy xuất thông tin liên quan trong đó các kết nối giữa các bảng được xác định rõ ràng, chẳng hạn như đơn đặt hàng của khách hàng hoặc phân công nhân viên.

SELECT orders.order_id, customers.customer_name, employees.first_name, employees.last_name
FROM sales.orders AS orders
INNER JOIN sales.customers AS customers ON orders.customer_id = customers.customer_id
INNER JOIN sales.employees AS employees ON orders.employee_id = employees.employee_id;

Truy vấn được cung cấp sử dụng nhiều INNER JOIN thao tác để truy xuất một tập kết quả hợp nhất chứa chi tiết về orders, customersemployees.

Bảng khớp customer_id với orders bảng tương customer_id ứng trong customers bảng và employee_id bảng orders trong employee_id bảng với bảng trong employees bảng. Do đó, truy vấn sẽ xuất ID của từng đơn hàng cùng với tên của khách hàng và nhân viên liên quan.