Câu lệnh SQL INNER JOIN trả về các hàng có giá trị chính xác trong hai cột trên hai bảng. Bạn có thể nối một bảng qua một hoặc nhiều cột. Câu lệnh JOIN kết nối hai bảng cơ sở dữ liệu và so sánh nội dung của chúng.
Có thể có lúc bạn muốn lấy dữ liệu từ hai hoặc nhiều bảng cùng một lúc và kết hợp kết quả.
Ví dụ:bạn có thể muốn lấy danh sách các sản phẩm và tên của các nhà cung cấp đã cung cấp các sản phẩm đó. Thông tin về tên sản phẩm và tên nhà cung cấp có trong hai bảng.
Đây là nơi SQL tham gia vào. Bằng cách sử dụng tham gia điều kiện, bạn có thể kết hợp thông tin từ nhiều bảng thành sau:một tập hợp kết quả. SQL INNER JOIN là một kiểu liên kết trả về các bản ghi có giá trị cột phù hợp trong hai bảng. Trong hướng dẫn này, chúng ta sẽ thảo luận về cách sử dụng INNER JOIN.
THAM GIA BÊN TRONG SQL
SQL INNER JOIN truy xuất tất cả các bản ghi có giá trị cột xuất hiện trong hai bảng được chỉ định. Câu lệnh INNER JOIN sử dụng từ khóa ON để đối sánh dữ liệu trên hai bảng.
INNER JOIN là loại nối SQL phổ biến nhất . Toán tử trả về các bản ghi có sự trùng khớp trong cả hai bảng.
Hãy cùng xem cú pháp của INNER JOIN từ khóa:
CHỌN tên
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
TỪ khách hàng
INNER Tham gia các kế hoạch
TRÊN customer.plan_id =plan.id;
Truy vấn này kết hợp các hàng từ bảng "khách hàng" và "kế hoạch". Nó trả về danh sách tất cả khách hàng có “plan_id” bằng bất kỳ ID nào trong bảng “kế hoạch”.
Chúng tôi sử dụng mệnh đề INNER JOIN để tham gia các bảng của chúng tôi. Từ khóa ON đứng sau tên của bảng mà chúng ta tham gia. Bạn có thể chỉ định nhiều điều kiện sau từ khóa ON bằng cách phân tách chúng bằng dấu phẩy.
Ví dụ về SQL INNER JOIN
Hiện tại, chúng tôi có cơ sở dữ liệu nhân viên lưu trữ ID bộ phận của từng nhân viên trong nhân viên chiếc bàn. Chúng tôi đã tạo bảng này bằng câu lệnh SQL CREATE TABLE. Tên bộ phận được lưu trữ trong một bảng riêng biệt có tên là company_dep domains .
Đây là nhân viên bảng:
nhân viên | ||
---|---|---|
tên | title | Department_id |
Luke | Nhân viên bán hàng | 1 |
Mike | Cộng tác viên bán hàng | 1 |
Hannah | Nhân viên bán hàng | 1 |
Geoff | Cộng tác viên bán hàng cấp cao | 1 |
Alexis | Nhân viên bán hàng | 1 |
Jonah | Phó Giám đốc Kinh doanh | 3 |
Emma | Giám đốc Tiếp thị | 2 |
(7 hàng)
Đây là bảng phòng ban:
company_dep domains | |
---|---|
Department_id | tên |
1 | bán hàng |
2 | tiếp thị |
3 | giám đốc điều hành |
(3 hàng)
Giả sử rằng chúng tôi muốn lấy tên, chức danh và tên bộ phận cho tất cả nhân viên. Dữ liệu này được chứa trong hai bảng:tên và chức danh của nhân viên có trong nhân viên chiếc bàn. Các tên bộ phận nằm trong company_dep domains bảng.
Làm cách nào để chúng tôi có được thông tin chúng tôi đang tìm kiếm?
Các nhân viên bảng có một cột có tên là Department_id . Cột này chứa ID của bộ phận mà mỗi nhân viên làm việc.
Trong công ty_các căn hộ mỗi bộ phận cũng có một ID (là một khóa chính trong bảng). Điều này có nghĩa là chúng tôi có thể đối sánh Department_id của nhân viên với danh sách các phòng ban. Làm như vậy sẽ cho chúng tôi biết tên của bộ phận mà nhân viên đó làm việc.
Hãy viết một truy vấn truy xuất tên của nhân viên, chức danh của họ và tên của bộ phận mà họ làm việc:
SELECT Employees.Name, Employees.Title, Company_Departments.Name FROM Employees INNER JOIN Company_Departments ON Employees.Department_ID = Company_Departments.Department_ID;
Truy vấn của chúng tôi trả về các hàng phù hợp sau:
name | tiêu đề | tên |
Alexis | Nhân viên bán hàng | Bán hàng |
Geoff | Nhân viên kinh doanh cấp cao | Bán hàng |
Hannah | Nhân viên bán hàng | Bán hàng |
Mike | Nhân viên bán hàng | Bán hàng |
Luke | Nhân viên bán hàng | Bán hàng |
Emma | Giám đốc Tiếp thị | Tiếp thị |
Jonah | Phó Giám đốc Kinh doanh | Điều hành |
Trên dòng đầu tiên, chúng tôi yêu cầu cơ sở dữ liệu lấy tên và chức danh của một nhân viên từ nhân viên chiếc bàn. Chúng tôi cũng truy xuất tên của bộ phận công ty từ company_dep domains bảng.
Trên dòng thứ hai, chúng tôi chỉ định rằng chúng tôi muốn lấy thông tin nhân viên từ nhân viên chiếc bàn. Tiếp theo, chúng tôi sử dụng INNER JOIN để kết nối nhân viên của chúng tôi bảng với công ty_căn_bộ bảng, bao gồm tên của các phòng ban.
Cuối cùng, dòng cuối cùng của chúng tôi liên kết cả nhân viên và công ty_cửa hàng bảng với nhau theo các trường chung của chúng, trong trường hợp này là Department_id .
Kết luận
Câu lệnh SQL INNER JOIN truy xuất các bản ghi có hai giá trị cột phù hợp trên hai bảng. Câu lệnh ON cho phép bạn chỉ định các điều kiện mà tham gia bên trong của bạn thực thi.
Làm chủ các phép nối là một phần quan trọng của truy vấn SQL cơ sở dữ liệu và sự hiểu biết này sẽ đưa bạn tiến một bước gần hơn đến việc trở thành SQL chuyên gia.
Chúng tôi đã viết một hướng dẫn cách học SQL để giúp những người học như bạn thành thạo SQL. Hướng dẫn này chứa danh sách các tài nguyên và khóa học hàng đầu cũng như lời khuyên về cách học SQL. Xem hướng dẫn trên trang Cách học SQL của chúng tôi.