Inner Join trong SQL Server

Sử dụng SQL server

5.0 (7 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 3 năm trước 101.812 lượt xem 5 bình luận
Tác giả/Dịch giả: Kteam
Học nhanh

Danh sách bài học

Inner Join trong SQL Server


Dẫn nhập

Trong bài trước, Kteam đã hướng dẫn bạn về LIKE và các cách truy vấn TÌM KIẾM GẦN ĐÚNG TRONG SQL. Tiếp theo, chúng ta sẽ bắt đầu tìm hiểu về JOIN, cụ thể trong bài này là INNER JOIN.


Nội dung chính

Để theo dõi tốt nhất bài này, bạn nên có kiến thức về:

Trong bài này, chúng ta sẽ cùng nhau tìm hiểu một số vấn đề sau:

  • Database mẫu
  • Inner Join là gì?
  • Inner Join 2 table trong SQL.
  • Inner Join nhiều table trong SQL.
  • Inner Join kết hợp điều kiện.

Database mẫu

Để thao tác tốt với bài này, chúng ta sử dụng database HowKteam sau:


Inner Join là gì?

INNER JOIN là mệnh đề truy vấn với kết quả trả về là tập hợp các dữ liệu thỏa mãn điều kiện chung từ 2 hay nhiều Table.

  • Điều kiện chung thường phụ thuộc liên kết khóa ngoại giữa hai Table.
  • Mọi Inner Join đều bắt buộc phải có điều kiện sau ON

Ta dễ dàng liên tưởng đến Inner Join thông qua biểu đồ venn trong toán học về phép giao hai tập hợp. Với A, B đại diện cho dữ liệu trong 2 Table. Inner Join chính là kết quả của phép toán A giao B

howkteam, kteam, hot, programmer, c#, SQL, database, select, From, Inner join, on


Inner Join 2 Table trong SQL

Cấu trúc:

SELECT <Danh sách column>

FROM <Table A> INNER JOIN <Table B>

ON <table A>.<tên Column> = <table B>.<tên Column>

Trong đó:

  • <danh sách column> tên các column cần hiển thị ở kết quả truy vấn. Các column được ngăn cách với nhau bằng dấu phẩy (,)
  • <Table A>, <Table B> là tên các bảng để lấy dữ liệu khi truy vấn.
  • <Tên column> thường là tên column khóa ngoại tham chiếu từ table A đến column định danh trong Table B hoặc ngược lại.

Lưu ý: Ta hoàn toàn có thể viết tắt INNER JOIN là JOIN trong câu truy vấn


So sánh giữa Inner Join kiểu cũ và mới

Để hiểu rõ hơn về INNER JOIN cũng như so sánh giữa Inner Join kiểu cũ và kiểu mới, ta sử dụng Database HowKteam ở đầu bài để tự thao tác trong quá trình theo dõi bài viết.

Ví dụ 1:  Với yêu cầu xuất ra thông tin giáo viên và tên bộ môn mà giáo viên đó giảng dạy.

Ta xét sơ đồ CSDL gồm 2 Table GIAOVIEN và BOMON, tồn tại khóa ngoại liên kết column MABM từ GIAOVIEN tham chiếu đến column MABM ở BOMON

howkteam, kteam, hot, programmer, c#, SQL, database, select, From, Inner join, on

Ta có thể thực hiện câu truy vấn này dưới hai cách sau:

howkteam, kteam, hot, programmer, c#, SQL, database, select, From, Inner join, on


Ví dụ khác

Ví dụ 2: Xuất ra thông tin giáo viên (mã GV và tên) và tên người thân tương ứng của giáo viên đó.

Ví dụ 3: Xuất ra thông tin đề tài (mã DT, tên DT) và tên chủ đề của đề tài đó

Ví dụ 4: Xuất ra thông tin đề tài (mã DT, tên DT) và tên giáo viên chủ nhiệm đề tài đó


Inner Join nhiều Table trong SQL

Cấu trúc:

SELECT <Danh sách column>

FROM <Table A>

INNER JOIN <Table B> ON <điều kiện join B>

INNER JOIN <Table C> ON <điều kiện join C>….

Trong đó:

  • <danh sách column> tên các bảng cột cần hiển thị ở kết quả truy vấn. Các column được ngăn cách với nhau bằng dấu phẩy (,)
  • <Table A>, <Table B>, <Table C> là tên các bảng để lấy dữ liệu khi truy vấn.
  • <điều kiện join B>, <điều kiện join C> điều kiện để truy vấn Inner Join của Table A với các Table khác.

Tương tự như Join 2 Table, Inner join nhiều table cũng có tốc độ truy vấn nhanh hơn truy vấn có điều kiện (hay Inner Join kiểu cũ).


Ví dụ

Ví dụ 5: Với yêu cầu xuất ra thông tin giáo viên (mã GV, tên GV) và tên khoa mà giáo viên đó giảng dạy.

Ta xét sơ đồ CSDL gồm 3 Table KHOA, BOMON và GIAOVIEN tồn tại khóa ngoại như hình.

howkteam, kteam, hot, programmer, c#, SQL, database, select, From, Inner join, on

Ví dụ 6: Với yêu cầu xuất ra tên đề tài và tên các giáo viên tham gia đề tài

Gợi ý: Bạn có thể dựa trên CSDL của 3 Table: DETAI, THAMGIADT và GIAOVIEN


Inner Join kết hợp điều kiện

Bạn hoàn toàn có thể kết hợp INNER JOIN với các điều kiện khác nếu cần bằng mệnh đề WHERE tương tự ở bài TRUY VẤN CÓ ĐIỀU KIỆN 

Ví dụ 7: Xuất ra thông tin các giáo viên nam, bộ môn và khoa mà giáo viên đó giảng dạy.

Ví dụ 8:  Xuất ra thông tin đề tài (Mã DT, tên DT) và tên giáo viên chủ nhiệm đề tài có ngày kết thúc trước năm 2009


Kết

Trong bài này, chúng ta đã tìm hiểu về INNER JOIN trong SQL Server.

Bài sau chúng ta sẽ tìm hiểu về FULL OUTER JOIN TRONG SQL.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của bạn để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Inner Join trong SQL Server dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!

Project

Nếu việc thực hành theo hướng dẫn không diễn ra suôn sẻ như mong muốn. Bạn cũng có thể tải xuống PROJECT THAM KHẢO ở link bên dưới!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Khóa học

Sử dụng SQL server

Với hệ thống nhỏ, chúng ta hoàn toàn có thể lưu trữ dữ liệu bằng file để khi tắt ứng dụng dữ liệu chúng ta vẫn còn được lưu giữ. Nhưng với hệ thống lớn, truy vấn tìm kiếm, thao tác với dữ liệu trên file không còn dễ dàng và hiệu quả nữa. Và SQL ra đời để giải quyết vấn đề đó.

Chúng ta cùng nhau tìm hiểu về SQL và SQL Server thông qua serial HƯỚNG DẪN SỬ DỤNG SQL SERVER nhé!

Đánh giá

5.0
7 đánh giá
Đánh giá
5
7
4
3
2
1
Nahida đã đánh giá khoảng 1 năm trước

Sam Sam đã đánh giá 2 năm trước

phungduongd đã đánh giá 3 năm trước

giahuykg94@gmail.com đã đánh giá 4 năm trước

Huỳnh Đức Duy đã đánh giá 6 năm trước

tuyệt

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
nguyenminhduc112 đã bình luận 4 năm trước

Vậy cho em hỏi 3 bảng inner join nhau được hông ạ

Huỳnh Minh Hiếu đã bình luận 5 năm trước

Cảm ơn anh !

 

Huỳnh Minh Hiếu đã bình luận 5 năm trước

Cảm ơn anh 

Khoa Tran đã bình luận 6 năm trước

Cảm ơn anh !

Trọng Nghĩa đã bình luận 8 năm trước

Anh K9 cho em xin ingame WOT :))

Không có video.