Hướng dẫn này giải thích cách hoạt động của phép nối bên trong SQL. Sau phần hướng dẫn, bạn sẽ biết cách áp dụng mệnh đề INNER JOIN để truy vấn dữ liệu từ nhiều bảng.
Bạn đang xem : tham gia bên trong với nơi sql
Tóm tắt : trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng mệnh đề SQL INNER JOIN để truy vấn dữ liệu từ hai hoặc nhiều bảng.
Giới thiệu về mệnh đề SQL INNER JOIN
Cho đến nay, bạn đã đã học cách sử dụng câu lệnh SELECT để truy vấn dữ liệu từ một bảng. Tuy nhiên, câu lệnh SELECT
không giới hạn ở dữ liệu truy vấn từ một bảng. Câu lệnh SELECT
có thể liên kết nhiều bảng với nhau.
Quá trình liên kết các bảng được gọi là nối. SQL cung cấp nhiều loại phép nối như phép nối bên trong, phép nối bên trái , phép nối phải, phép nối bên ngoài đầy đủ, v.v. Hướng dẫn này tập trung vào phép nối bên trong.
Giả sử, bạn có hai bảng: A và B.
Bảng A có bốn hàng: (1,2,3,4) và bảng B có bốn hàng: (3,4,5,6)
Khi bảng A kết hợp với bảng B bằng phép nối bên trong, bạn có tập kết quả (3,4) là giao điểm của bảng A và bảng B.
Xem hình sau.
Đối với mỗi hàng trong bảng A, mệnh đề nối bên trong tìm các hàng phù hợp trong bảng B. Nếu một hàng được khớp, hàng đó sẽ được đưa vào tập kết quả cuối cùng. p>
Giả sử các cột trong bảng A và B là a
và b
. Câu lệnh sau minh họa mệnh đề liên kết bên trong:
CHỌN
aTỪ
AINNER
THAM GIA
BBẬT
b = a;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
THAM GIA INNER mệnh đề xuất hiện sau mệnh đề FROM. Điều kiện để khớp giữa bảng A và bảng B được chỉ định sau từ khóa ON. Điều kiện này được gọi là điều kiện nối, tức là B.n = A.n
Mệnh đề INNER JOIN có thể nối ba bảng trở lên miễn là chúng có mối quan hệ, thường là mối quan hệ khóa ngoài. P >
Ví dụ: câu lệnh sau minh họa cách nối 3 bảng: A, B và C:
CHỌN
MộtTỪ
AINNER
THAM GIA
BBẬT
B.n = A.nINNER
THAM GIA
CBẬT
C.n = A.n;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
SQL INNER JOIN ví dụ
Hãy lấy một số ví dụ thực tế về việc sử dụng mệnh đề INNER JOIN
.
1) Sử dụng SQL INNER JOIN để nối hai bảng ví dụ
< p> Chúng tôi sẽ sử dụng bảng nhân viên
và phòng ban
từ cơ sở dữ liệu mẫu để chứng minh cách hoạt động của mệnh đề INNER JOIN
.
Mỗi nhân viên thuộc về một và chỉ một bộ phận trong khi mỗi bộ phận có thể có nhiều hơn một nhân viên. Mối quan hệ giữa phòng ban
và nhân viên
là một-nhiều.
Cột Department_id
trong bảng nhân viên
là cột khóa ngoại liên kết nhân viên
với bảng phòng ban
.
Để lấy thông tin của id phòng ban 1 , 2 và 3, bạn sử dụng câu lệnh sau.
);
CHỌN
Department_id, Tên bộ phậnTỪ
các phòng banỞ ĐÂU
Department_idIN
(1
,2
, < p class = "hljs-number"> 3Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Hãy thử span >
Lưu ý rằng chúng tôi đã sử dụng toán tử IN trong mệnh đề WHERE để lấy các hàng có Department_id 1, 2 và 3.
Để lấy thông tin của các nhân viên làm việc ở id bộ phận 1, 2 và 3, bạn sử dụng truy vấn sau:
)
CHỌN
họ, họ, Department_idTỪ
người lao độngỞ ĐÂU
Department_idIN
(1
,2
, < p class = "hljs-number"> 3ĐẶT HÀNG
THEO
Department_id;Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
< span class = "sql" rel = "noopener noreferrer" target = "_ blank"> Dùng thử
Để kết hợp dữ liệu từ hai bảng này, bạn sử dụng mệnh đề nối bên trong làm truy vấn sau:
CHỌN
họ, họ, nhân viên.department_id, Department.department_id, Tên bộ phậnTỪ
người lao độngINNER
THAM GIA
các phòng banBẬT
Department.department_id = staff.department_idỞ ĐÂU
staff.department_idIN
(1
,2
,3
);Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
Dùng thử
Đối với mỗi hàng trong bảng staff
, câu lệnh sẽ kiểm tra xem giá trị của cột Department_id
có bằng với giá trị của Department_id
trong bảng phòng ban
. Nếu điều kiện
Nếu điều kiện staff.department_id = domains.department_id
được thỏa mãn, hàng kết hợp bao gồm dữ liệu từ các hàng trong cả staff
và < bảng mã> phòng ban được bao gồm trong tập kết quả.
Lưu ý rằng cả bảng nhân viên
và phòng ban
có cùng tên cột
Mỗi nhân viên đảm nhiệm một công việc trong khi một công việc có thể do nhiều nhân viên đảm nhiệm. Mối quan hệ giữa bảng công việc
và bảng nhân viên
là một-nhiều.
Sơ đồ cơ sở dữ liệu sau minh họa mối quan hệ giữa các nhân viên Bảng
, phòng ban
và công việc
:
Truy vấn sau sử dụng mệnh đề nối bên trong để nối 3 bảng: nhân viên , phòng ban và công việc để lấy họ, tên, chức danh và tên bộ phận của những nhân viên làm việc ở id bộ phận 1, 2 và 3.
CHỌN
họ, họ, job_title, Tên bộ phậnTỪ
nhân viên eINNER
THAM GIA
các phòng ban dBẬT
d.department_id = e.department_idINNER
THAM GIA
việc làm jBẬT
j.job_id = e.job_idỞ ĐÂU
e.department_idIN
(1
,2
,3
);Ngôn ngữ mã:
SQL (Ngôn ngữ truy vấn có cấu trúc)
(
sql
)
< p> Dùng thử
Bây giờ bạn sẽ hiểu cách hoạt động của mệnh đề SQL INNER JOIN và biết cách áp dụng nó để truy vấn dữ liệu từ nhiều bảng.
Hướng dẫn này có hữu ích không? p >
Xem thêm những thông tin liên quan đến chủ đề tham gia bên trong với where sql
SQL Inner Join Basics and Examples Adventure Works
- Tác giả: Blake B
- Ngày đăng: 2017-08-26
- Đánh giá: 4 ⭐ ( 5066 lượt đánh giá )
- Khớp với kết quả tìm kiếm: SQL inner join basics and example in adventure works, if you have any questions comment below and I’ll get back to you. Thanks for watching.
[Mysql] – Bài 2 – Biến và tham số trong Mysql Stored Procedure
- Tác giả: nongdanit.info
- Đánh giá: 5 ⭐ ( 7226 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Tìm hiểu biến, cách khai báo biến gán giá trị cho biến và truyền tham số vào Mysql Stored Procedure, các loại tham số IN – OUT- INOUT trong MYSQL Stored procedure đầy đủ
Function trong SQL Server: Hướng dẫn từ A-Z về function
- Tác giả: comdy.vn
- Đánh giá: 5 ⭐ ( 6154 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Tìm hiểu mọi thứ bạn cần biết về function trong SQL Server: bao gồm hàm vô hướng và hàm bảng.
Mệnh đề WHERE trong SQL
- Tác giả: shareprogramming.net
- Đánh giá: 4 ⭐ ( 3756 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Mệnh đề WHERE trong SQL
- Tác giả: viettuts.vn
- Đánh giá: 4 ⭐ ( 7028 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Mệnh đề WHERE trong SQL được sử dụng để chỉ định một điều kiện trong khi lấy dữ liệu từ một bảng hoặc bằng cách join với nhiều bảng. Nếu điều kiện thỏa mãn,
Mệnh đề lọc dữ liệu theo điều kiện
- Tác giả: kienit.com
- Đánh giá: 3 ⭐ ( 1238 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Mệnh đề WHERE trong SQL dùng để lọc dữ liệu theo điều kiện cho sẵn. Trong câu lệnh SELECT có điều kiện thì WHERE nằm sau mệnh đề FROM.
SQL trong Access: Mệnh đề WHERE
- Tác giả: support.microsoft.com
- Đánh giá: 3 ⭐ ( 6587 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Bài viết này mô tả cách viết mệnh đề WHERE trong cơ sở dữ liệu Access.
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình