Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Cách sử dụng INNER JOIN trong SQL

Trong bài viết này, chúng ta sẽ tìm hiểu về khái niệm INNER JOIN và cách sử dụng nó trong SQL với mệnh đề WHERE.

INNER JOIN trong SQL là gì?

Tham gia bên trong là một kiểu tham gia trong SQL. Phép nối bên trong trong SQL là một phép nối được sử dụng rộng rãi. Phép nối này chỉ trả về những hàng chung trong cả hai bảng. Phép nối bên trong được sử dụng để nối hai bảng.

Cú pháp của phép nối bên trong trong SQL:

SELECT table1.columname1, table1.columnname2, table2.columnname1, table2.columnname2 FROM TABLE1 INNER JOIN TABLE2 ON table1.column = table2.column;

Table1.column =table2.column là cột chung duy trì mối quan hệ con chính giữa hai bảng này.

Có một số bước mà chúng tôi phải sử dụng trong Nối bên trong trong truy vấn SQL:

1. Tạo cơ sở dữ liệu mới hoặc sử dụng cơ sở dữ liệu hiện có bằng cách chọn cơ sở dữ liệu bằng từ khóa USE theo sau là tên cơ sở dữ liệu.

2. Tạo một bảng mới bên trong cơ sở dữ liệu đã chọn hoặc bạn có thể sử dụng một bảng đã được tạo.

3. Nếu bảng mới được tạo, hãy chèn các bản ghi vào cơ sở dữ liệu mới được tạo bằng cách sử dụng truy vấn INSERT.

4. Xem dữ liệu được chèn bằng truy vấn CHỌN mà không có truy vấn Nối bên trong.

5 Bây giờ, chúng ta đã sẵn sàng sử dụng phép nối bên trong trong các truy vấn SQL.

Bước 1:Tạo cơ sở dữ liệu mới hoặc sử dụng cơ sở dữ liệu đã được tạo.

Tôi đã tạo một cơ sở dữ liệu. Tôi sẽ sử dụng tên cơ sở dữ liệu đã tạo hiện có của mình, Công ty.

USE Company;

Công ty là tên cơ sở dữ liệu.

Những người chưa tạo cơ sở dữ liệu hãy làm theo truy vấn dưới đây để tạo cơ sở dữ liệu:

CREATE DATABASE database_name;

Sau khi tạo cơ sở dữ liệu, hãy chọn cơ sở dữ liệu bằng cách sử dụng từ khóa USE, theo sau là tên cơ sở dữ liệu.

Bước 2:Tạo bảng mới hoặc sử dụng bảng đã có:

Tôi đã tạo một bảng. Tôi sẽ sử dụng bảng hiện có có tên Nhân viên và Người quản lý khi chúng tôi đang thực hiện truy vấn Tham gia bên trong.

Để tạo bảng mới, hãy làm theo cú pháp TẠO BẢNG bên dưới:

CREATE TABLE table_name(

columnname1 datatype(column size),

columnname2 datatype(column size),

columnname3 datatype(column size)

);

Bước 3:Chèn bản ghi vào bảng mới tạo bằng cách sử dụng truy vấn CHÈN

Sử dụng cú pháp dưới đây để chèn các bản ghi mới vào bảng:

INSERT INTO table_name VALUES(value1, value2, value3);

Bước 4: Xem các bản ghi bằng truy vấn SELECT.

Xem các bản ghi từ bảng bằng cú pháp sau:

SELECT * FROM table_name;

Truy vấn sau sẽ hiển thị hồ sơ của Nhân viên.

SELECT * FROM Employees;

Kết quả của truy vấn SELECT ở trên là:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
3001 PRANOTI CHIA SẺ 55500 PUNE JAVA 3
3002 ANUJA DÂY 50500 JAIPUR FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4
4002 ASHWINI TÚI XÁCH 54500 NOIDA JAVA 3
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
5001 ARCHIT SHARMA 55500 DELHI KIỂM TRA 4
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
5003 ROSHAN NEHTE 48500 ĐIỀU CHỈNH C # 5
6001 RAHUL NIKAM 54500 BANGALORE KIỂM TRA 4
6002 TẠP CHÍ JADHAV 60500 BANGALORE C # 5
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1

Truy vấn sau sẽ hiển thị các bản ghi của Người quản lý.

SELECT * FROM Manager;

Kết quả của truy vấn SELECT ở trên là:

Managerid manager_name manager_department
1 Snehdeep Kaur ORACLE
2 Kirti Kirtane FMW
3 Abhishek Manish JAVA
4 Anupam Mishra KIỂM TRA
5 Akash Kadam C #

Truy vấn sau sẽ hiển thị các bản ghi của Máy tính xách tay.

SELECT * FROM Laptop;

Kết quả của truy vấn SELECT ở trên là:

LAPTOPID TÊN NGƯỜI LAO ĐỘNG
101 DELL KHÔNG ĐẦY ĐỦ
102 HP 1002
103 LENOVO KHÔNG ĐẦY ĐỦ
104 HP 3003
105 DELL 4002
106 LENOVO 4003
107 DELL 5001
108 HP KHÔNG ĐẦY ĐỦ
109 DELL KHÔNG ĐẦY ĐỦ
110 HP KHÔNG ĐẦY ĐỦ
111 LENOVO 2002
112 LENOVO 6003
113 HP 1003

Bước 5:Chúng tôi đã sẵn sàng sử dụng INNER JOIN trong các truy vấn

Hãy cùng tìm hiểu Nội tâm với sự trợ giúp của các ví dụ.

Ví dụ 1: Viết truy vấn để hiển thị id nhân viên, tên, họ, lương, thành phố từ bảng của nhân viên, id người quản lý và tên người quản lý từ bảng người quản lý bằng cách sử dụng kết nối Nội bộ.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.SALARY, E.CITY, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID;

Trong truy vấn trên, chúng tôi đã tìm nạp id nhân viên, họ, tên, lương, thành phố từ bảng của nhân viên và id người quản lý, tên người quản lý từ bảng người quản lý trong đó cột id người quản lý bảng của nhân viên bằng với cột id người quản lý bảng của người quản lý. Truy vấn sẽ trả về tất cả các bản ghi đối sánh từ cả hai bảng. Id người quản lý là một cột chung giữa cả hai bảng. E là tên bí danh cho bảng của nhân viên, trong khi M là tên cho bảng của người quản lý. Cột id người quản lý hoạt động như một khóa ngoại trong bảng của nhân viên. Id người quản lý hoạt động như khóa chính trong bảng người quản lý, tạo mối quan hệ cha-con giữa hai bảng.

Kết quả của truy vấn trên là:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
1003 NIKHIL VANI 50500 JAIPUR FMW 2
2002 BHAVESH JAIN 65500 PUNE FMW 2
3002 ANUJA DÂY 50500 JAIPUR FMW 2
3001 PRANOTI CHIA SẺ 55500 PUNE JAVA 3
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
4002 ASHWINI TÚI XÁCH 54500 NOIDA JAVA 3
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4
5001 ARCHIT SHARMA 55500 DELHI KIỂM TRA 4
6001 RAHUL NIKAM 54500 BANGALORE KIỂM TRA 4
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
5003 ROSHAN NEHTE 48500 ĐIỀU CHỈNH C # 5
6002 TẠP CHÍ JADHAV 60500 BANGALORE C # 5

Các bản ghi được hiển thị theo thứ tự tăng dần theo id người quản lý mặc định.

Ví dụ 2: Viết truy vấn để hiển thị id nhân viên, họ, tên, thành phố và phòng ban từ bảng của nhân viên và id người quản lý và tên người quản lý từ bảng người quản lý bằng cách sử dụng Nội dung tham gia với bộ phận nhân viên là C #.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.LAST_NAME, E.CITY, E.DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID =M.MANAGERID WHERE DEPARTMENT = ‘C#’;

Trong truy vấn trên, chúng tôi đã tìm nạp id nhân viên, họ, tên, thành phố và phòng ban từ bảng của nhân viên, id người quản lý và tên người quản lý từ bảng người quản lý trong đó id người quản lý từ bảng nhân viên bằng id người quản lý chỉ từ bảng người quản lý những hồ sơ nhân viên có bộ phận nhân viên là C #.

Kết quả của truy vấn trên là:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
2003 RUCHIKA JAIN 50000 MUMBAI C # 5
5003 ROSHAN NEHTE 48500 ĐIỀU CHỈNH C # 5
6002 TẠP CHÍ JADHAV 60500 BANGALORE C # 5

Trong đầu ra obove, chúng ta chỉ có thể thấy những bản ghi được truy xuất từ ​​những nhân viên có bộ phận là C #. Chúng tôi sử dụng mệnh đề WHERE với tham gia INNER.

Ví dụ 3: Viết truy vấn để hiển thị id nhân viên, tên, lương, thành phố và phòng ban từ bảng của nhân viên cũng như id máy tính xách tay và tên máy tính xách tay từ bảng máy tính xách tay bằng cách sử dụng Inner Join.

SELECT E.EMPLOYEEID, E.FIRST_NAME, E.SALARY, E.CITY, E.DEPARTMENT, L.LAPTOPID, L.NAME FROM EMPLOYEES E INNER JOIN LAPTOP L ON E.EMPLOYEEID = L.EMPLOYEEID;

Trong truy vấn trên, chúng tôi đã tìm nạp id nhân viên, tên, lương, thành phố và phòng ban từ bảng nhân viên, id máy tính xách tay và tên từ bảng máy tính xách tay trong đó id nhân viên từ bảng nhân viên bằng với id nhân viên từ bảng máy tính xách tay . Id nhân viên là một khóa ngoại trong bảng Máy tính xách tay, tạo mối quan hệ mẹ-con giữa bảng Nhân viên và bảng Máy tính xách tay.

Kết quả của truy vấn trên là:

EMPLOYEEID FIRST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA LAPTOPID TÊN
1002 VAIBHAV 60000 NOIDA C # 102 HP
3003 DEEPAM 58500 MUMBAI JAVA 104 HP
4002 ASHWINI 54500 NOIDA JAVA 105 DELL
4003 RUCHIKA 60000 DELHI ORACLE 106 LENOVO
5001 ARCHIT 55500 DELHI KIỂM TRA 107 DELL
2002 BHAVESH 65500 PUNE FMW 111 LENOVO
6003 NIKITA 65000 HYDERABAD ORACLE 112 LENOVO
1003 NIKHIL 50500 JAIPUR FMW 113 HP

Chỉ những bản ghi đó được hiển thị trong đầu ra nhất định mà Máy tính xách tay được chỉ định.

Ví dụ 4: Viết truy vấn để hiển thị id nhân viên, tên, lương và phòng ban từ bảng nhân viên và Id người quản lý và tên người quản lý từ bảng người quản lý bằng cách sử dụng tham gia bên trong nơi lương> 57000 hoặc phòng ban là Oracle.

SELECT EMPLOYEEID, FIRST_NAME, SALARY, DEPARTMENT, M.MANAGERID, M.MANAGER_NAME FROM EMPLOYEES E INNER JOIN MANAGER M ON E.MANAGERID = M.MANAGERID WHERE SALARY > 57000 OR DEPARTMENT = 'ORACLE';

Trong truy vấn ở trên, chúng tôi đã tìm nạp id nhân viên, họ, lương và phòng ban từ bảng của nhân viên và id người quản lý và tên người quản lý từ bảng người quản lý trong đó id người quản lý từ bảng nhân viên bằng với id người quản lý từ người quản lý chỉ những nhân viên có lương lớn hơn 57000 hoặc Bộ phận là Oracle.

Kết quả của truy vấn trên là:

EMPLOYEEID FIRST_NAME LAST_NAME TIỀN LƯƠNG THÀNH PHỐ KHOA MANAGERID
1001 VAIBHAVI MISHRA 65500 PUNE ORACLE 1
2001 PRACHI SHARMA 55500 ĐIỀU CHỈNH ORACLE 1
4003 RUCHIKA AGARWAL 60000 DELHI ORACLE 1
6003 NIKITA INGALE 65000 HYDERABAD ORACLE 1
2002 BHAVESH JAIN 65500 PUNE FMW 2
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3
5002 SANKET CHAUHAN 70000 HYDERABAD JAVA 3
4001 RAJESH MỤC TIÊU 60500 MUMBAI KIỂM TRA 4
1002 VAIBHAV SHARMA 60000 NOIDA C # 5
6002 TẠP CHÍ JADHAV 60500 BANGALORE C # 5

Trong kết quả đầu ra ở trên, chỉ những hồ sơ nhân viên được hiển thị có mức lương lớn hơn 57000 hoặc bộ phận nhân viên là 'Oracle'. Toán tử OR hiển thị các bản ghi nếu một trong các điều kiện đã cho trong truy vấn là đúng.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xác định các vấn đề đặt hàng trong sự kiện mở rộng

  2. Tạo bảng mới trong IRI Workbench

  3. Theo dõi cập nhật tự động cho thống kê

  4. Hạn chế một máy chủ được liên kết với một đăng nhập cục bộ duy nhất (Ví dụ T-SQL)

  5. Cách sử dụng INNER JOIN trong SQL