SQL PROGRAMMING

Các phép nối JOIN

Các phép nối trong cơ sở dữ liệu

INNER JOIN: Nối trong. Lấy những dữ liệu tồn tại ở cả 2 bảng

LEFT JOIN: Nối Trái, Lấy dữ liệu toàn bộ ở bảng bên phải

RIGHT JOIN: Nối phải. Lấy toàn bộ dữ liệu ở bảng bên phải

FULL JOIN: Lấy toàn bộ dữ liệu có ở 2 bảng

CROSS JOIN: Nối chéo. Nối từng phần tử dữ liệu từ bảng bên trái sang từng phần tử của bảng bên phải

SELF JOIN: Nối đệ quy. Tự nối với chính nó.

 

  1. INNER JOIN: Nối trong. Lấy những dữ liệu tồn tại ở cả 2 bảng

SELECT

c.id candidate_id,
c.fullname candidate_name,
e.id employee_id,
e.fullname employee_name
FROM
hr.candidates c
INNER JOIN hr.employees e  ON e.fullname = c.fullname;

Máy chủ SQL INNER THAM GIA

  1. LEFT JOIN: Nối Trái, Lấy dữ liệu toàn bộ ở bảng bên phải

SELECT

          c.id candidate_id,
c.fullname candidate_name,
e.id employee_id,
e.fullname employee_name
FROM
hr.candidates c
LEFT JOIN hr.employees e  ON e.fullname = c.fullname;

Máy chủ SQL TRÁI THAM GIA

 

Trường hợp chỉ lấy dữ liệu bảng bên Trái

SELECT

          c.id candidate_id,
c.fullname candidate_name,
e.id employee_id,
e.fullname employee_name
FROM
hr.candidates c
LEFT JOIN hr.employees e  ON e.fullname = c.fullname

WHERE  e.id employee_id  is NULL

 

Tham gia máy chủ SQL - Tham gia bên trái chỉ với các hàng trong bảng bên trái

 

 

  1. RIGHT JOIN: Nối phải. Lấy toàn bộ dữ liệu ở bảng bên phải

Ngược lại với Left join

SELECT

          c.id candidate_id,
c.fullname candidate_name,
e.id employee_id,
e.fullname employee_name
FROM
hr.candidates c
RIGHT JOIN hr.employees e  ON e.fullname = c.fullname

SELECT

          c.id candidate_id,
c.fullname candidate_name,
e.id employee_id,
e.fullname employee_name
FROM
hr.candidates c
RIGHT JOIN hr.employees e  ON e.fullname = c.fullname

WHERE  e.id employee_id  is NULL

Tham gia máy chủ SQL - Tham gia phải chỉ với các hàng trong bảng bên phải

  1. FULL JOIN: Lấy toàn bộ dữ liệu có ở 2 bảng

SELECT

          c.id candidate_id,
c.fullname candidate_name,
e.id employee_id,
e.fullname employee_name
FROM
hr.candidates c
FULL OUTER JOIN hr.employees e  ON e.fullname = c.fullname

Tham gia máy chủ SQL - Tham gia bên ngoài đầy đủ

SELECT

          c.id candidate_id,
c.fullname candidate_name,
e.id employee_id,
e.fullname employee_name
FROM
hr.candidates c
FULL OUTER JOIN hr.employees e  ON e.fullname = c.fullname

WHERE  e.id employee_id  is NULL or

             c.id candidate_id is NULL

Tham gia máy chủ SQL - Tham gia bên ngoài đầy đủ với các hàng duy nhất cho cả hai bảng

CROSS JOIN: Nối chéo. Nối từng phần tử dữ liệu từ bảng bên trái sang từng phần tử của bảng bên phải

 

Ví dụ THAM GIA CROSS của máy chủ SQL

  1. SELF JOIN: Nối đệ quy. Tự nối với chính nó.

SELECT
e.first_name + ‘ ‘ + e.last_name employee,
m.first_name + ‘ ‘ + m.last_name manager
FROM
sales.staffs e
INNER JOIN sales.staffs m ON m.staff_id = e.manager_id
ORDER BY   manager;

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *