MySQL đầy đủ tham gia nhiều bảng

SQL FULL OUTER JOIN được sử dụng để truy xuất tất cả các bản ghi từ cả hai bảng đã nối, bảng bên trái và bảng bên phải, nó kết hợp chức năng của phép nối ngoài bên trái và phép nối ngoài bên phải

ĐẦY ĐỦ OUTER JOIN trả về các hàng không khớp từ cả hai bảng cũng như phần chồng chéo giữa chúng. Khi không có hàng phù hợp nào tồn tại cho một hàng trong bảng bên trái, các cột của bảng bên phải sẽ có giá trị NULL cho các bản ghi đó. Tương tự, khi không có hàng phù hợp nào tồn tại cho một hàng trong bảng bên phải, các cột của bảng bên trái sẽ có giá trị NULL

 

Cú pháp SQL FULL OUTER JOIN

SELECT column1,column2…column[n]
FROM left_table_name
FULL JOIN | FULL OUTER  JOIN  right_table_name
ON left_table.column_name = right_table.column_name
[where condition]
[order by column1,column2..];

Đây,

  • cột1,cột2…cột[n]. Chỉ định từng tên cột được phân tách bằng dấu phẩy từ cả hai bảng
  • left_table_name. Nó là tên của bảng mà các bản ghi sẽ được so khớp với bảng bên phải,
  • Right_table_name. Nó là tên của bảng mà từ đó dữ liệu sẽ được lấy ra
  • ĐẦY ĐỦ  THAM GIA. THAM GIA NGOÀI ĐẦY ĐỦ. Nó là từ khóa dùng để nối 2 bảng sử dụng FULL join, chúng ta có thể chỉ định từ khóa FULL JOIN hoặc FULL OUTER JOIN để thực hiện nối đúng
  • [Trường hợp điều kiện]. Nó là đối số tùy chọn, được sử dụng để truy xuất các bản ghi có điều kiện
  • [Sắp xếp theo cột1, cột2. ]. Đây là đối số tùy chọn, được chỉ định để hiển thị các bản ghi kết quả theo thứ tự giá trị cột đã chỉ định

CŨNG ĐỌC. Giải thích mệnh đề SQL VỚI [Ví dụ thực tiễn]

 

Ví dụ về SQL FULL OUTER THAM GIA

Xem xét cơ sở dữ liệu quản lý bệnh viện với bốn bảng bệnh nhân, bác sĩ, phòng thí nghiệm, hóa đơn để thực hiện các ví dụ thực tế

Bàn bệnh nhân

patient_idnameagegenderaddressdiseasedoctor_id1reema23femalealthan,Suratfever212kusum50femalevadodaraheart failure223carlin43malevapiinfection234rahul26malenavsaricancer216hansha55femalevapidiabetes22

bàn bác sĩ

doctor_idnameagegenderaddress21asif55malebaruch22dhawal40maleSurat23krishna39femaleSurat24lissa35femaleNavsari25leeba34femalebaruch26vini33femaleSurat27Dhiren32maleNavsari

Bảng hóa đơn

bill_nopatient_iddoctor_idroom_chargeno_of_days500513405004500626004808500838003403500947808906501034001501112003001501226001102501333302101501412303402

bàn thí nghiệm

Quảng cáo

lan_no Patient_iddoctor_iddateamount1012102-02-200040002022109-09-20013003032203-03-20016004012302-06-20028005042105-07-20039006022510-04-200452035042-07

 

SQL FULL OUTER THAM GIA với hai bảng

ví dụ 1. Viết truy vấn SQL để hiển thị thông tin bệnh nhân với chi tiết bác sĩ của họ

SELECT  patient.patient_id AS 'Patient ID', patient.name AS 'Patient Name', patient.age AS 'Patient Age', patient.gender AS 'Patient Gender', patient.address AS 'Patient Address', patient.disease AS 'Patient Disease', patient.doctor_id, doctor.name AS 'Doctor Name', doctor.age AS 'Doctor Age', doctor.address AS 'Doctor Location' FROM  patient 
FULL OUTER JOIN doctor ON patient.doctor_id = doctor.doctor_id
  • Trong truy vấn trên, SQL FULL JOIN được sử dụng để truy xuất các bản ghi kết hợp từ cả hai bảng bệnh nhân và bác sĩ
  • Ở đầu ra, chúng tôi sẽ nhận được NULL trong dữ liệu bệnh nhân cho những bác sĩ không có bất kỳ bệnh nhân nào

CŨNG ĐỌC. Hàm SQL COUNT, AVG, SUM. Hàm tổng hợp trong SQL

ĐẦU RA

 

SQL FULL OUTER THAM GIA với ba bảng

ví dụ 2. Viết truy vấn SQL để truy xuất tất cả thông tin bệnh nhân, tất cả tên bác sĩ và chi tiết thanh toán

SELECT  patient.patient_id, patient.name AS 'Patient Name', doctor.name AS 'Doctor Name', patient.disease AS 'Disease', bill.doctor_charge AS 'Doctor Charge', bill.room_charge AS 'Room Charge', bill.amount AS 'bill amount' FROM  doctor 
FULL OUTER JOIN patient ON patient.doctor_id = doctor.doctor_id 
FULL OUTER JOIN bill ON patient.patient_id = bill.patient_id
  • Trong truy vấn trên, SQL FULL OUTER JOIN được sử dụng nối ba bảng để truy xuất tập bản ghi kết hợp của tất cả các bản ghi từ ba bảng bệnh nhân, bác sĩ và hóa đơn
  • SQL FULL OUTER JOIN tham gia ba bảng dựa trên cột chung, nếu các bản ghi phù hợp cho một cột chung không tồn tại, SQL trả về giá trị NULL

ĐẦU RA

 

SQL FULL OUTER JOIN trên nhiều bảng với Mệnh đề Where

ví dụ 3. Viết truy vấn SQL để hiển thị dữ liệu bệnh nhân nam có tuổi hơn 30 với chi tiết báo cáo phòng thí nghiệm và tên bác sĩ

SELECT  patient.patient_id, patient.name AS 'Name', doctor.name AS 'Doctor name', patient.age, patient.gender, patient.address, patient.disease, doctor.address AS 'Doctor Address', laboratory.lab_no, laboratory.date,  laboratory.amount FROM  laboratory 
FULL OUTER JOIN patient ON patient.patient_id = laboratory.patient_id 
FULL OUTER JOIN doctor ON laboratory.doctor_id = doctor.doctor_id
WHERE [patient.gender = 'male'] AND [patient.age > 30]
  • Trong truy vấn trên, SQL FULL OUTER JOIN được sử dụng để nối hai bảng và truy xuất bản ghi từ cả hai bảng dựa trên điều kiện và giá trị cột chung
  • Đầu ra chứa một bản ghi phân tầng hai điều kiện được chỉ định bằng mệnh đề SQL và truy xuất dữ liệu từ cả ba bảng

CŨNG ĐỌC. Giải thích thủ tục lưu trữ SQL [Ví dụ thực tế]

ĐẦU RA

 

Ví dụ 4. Viết truy vấn SQL để hiển thị tất cả các chi tiết thanh toán của bệnh nhân với thông tin cá nhân của bệnh nhân nếu số ngày nhập viện lớn hơn 5

SELECT  patient.patient_id, patient.name, patient.age, patient.gender, patient.address, patient.disease, patient.doctor_id, bill.bill_no, bill.doctor_charge, bill.room_charge, bill.no_of_days, bill.amount FROM  patient 
FULL OUTER JOIN bill ON patient.patient_id = bill.patient_id
WHERE  [bill.no_of_days > 5]
  • Trong truy vấn trên, SQL FULL OUTER JOIN được áp dụng để truy xuất các bản ghi kết hợp từ hai bảng bệnh nhân và hóa đơn
  • Mệnh đề SQL where được sử dụng để kiểm tra điều kiện là không. số ngày nhập viện phải lớn hơn 5

ĐẦU RA

Quảng cáo

 

SQL FULL OUTER THAM GIA trên nhiều bảng với Nhóm theo khoản

SQL Right Outer Join cho phép chúng ta sử dụng mệnh đề Group by cùng với các hàm tổng hợp để nhóm các bản ghi có cùng giá trị cho cột được chỉ định

Ví dụ 5. Viết truy vấn SQL để đếm tổng số bệnh nhân của mỗi bác sĩ bằng cách kết hợp các bản ghi có thể của bệnh nhân và bác sĩ

SELECT patient.doctor_id, COUNT[patient.patient_id] AS 'Total Patient' FROM  patient 
FULL OUTER JOIN doctor ON patient.doctor_id = doctor.doctor_id
GROUP BY patient.doctor_id
  • Trong truy vấn trên, SQL FULL OUTER JOIN được sử dụng để nối hai bảng bệnh nhân và bác sĩ để lấy các bản ghi từ cả hai bảng
  • Nhóm SQL theo mệnh đề được sử dụng để tạo một nhóm có cùng một doctor_id trong bảng bệnh nhân và hàm đếm tổng hợp được sử dụng để tạo tổng số bệnh nhân của từng nhóm id bác sĩ

CŨNG ĐỌC. Giải thích hàm SQL RANK [Ví dụ thực tế]

ĐẦU RA

 

SQL FULL OUTER THAM GIA Sử dụng Mệnh đề Union

Nếu cơ sở dữ liệu không cho phép FULL JOIN [MySQL thì không], chúng ta có thể kết hợp LEFT OUTER JOIN và RIGHT OUTER JOIN bằng cách sử dụng mệnh đề Union để có cùng kết quả của SQL FULL OUTER JOIN

Ví dụ 6. Viết truy vấn SQL để truy xuất các bản ghi kết hợp từ bệnh nhân và bác sĩ

SELECT  patient.patient_id AS 'Patient ID', patient.name AS 'Patient Name', patient.age AS 'Patient Age', patient.gender AS 'Patient Gender', patient.address AS 'Patient Address', patient.disease AS 'Patient Disease', patient.doctor_id, doctor.name AS 'Doctor Name', doctor.age AS 'Doctor Age', doctor.address AS 'Doctor Location' FROM  patient 
LEFT OUTER JOIN doctor ON patient.doctor_id = doctor.doctor_id
UNION
SELECT patient_1.patient_id AS 'Patient ID', patient_1.name AS 'Patient Name', patient_1.age AS 'Patient Age', patient_1.gender AS 'Patient Gender', patient_1.address AS 'Patient Address', patient_1.disease AS 'Patient Disease', patient_1.doctor_id, doctor_1.name AS 'Doctor Name', doctor_1.age AS 'Doctor Age', doctor_1.address AS 'Doctor Location' FROM  patient AS patient_1 
RIGHT OUTER JOIN doctor AS doctor_1 ON patient_1.doctor_id = doctor_1.doctor_id
  • Trong truy vấn trên, mệnh đề UNION được sử dụng kết hợp hai truy vấn chọn SQL để thực hiện SQL FULL OUTER JOIN
  • Truy vấn chọn SQL đầu tiên sử dụng SQL LEFT OUTER JOIN để tham gia bảng bệnh nhân và bác sĩ trong đó bệnh nhân là bảng bên trái
  • Truy vấn chọn SQL thứ hai được sử dụng SQL RIGHT OUTER JOIN để tham gia bảng bệnh nhân và bác sĩ, trong đó bác sĩ là bảng bên phải

CŨNG ĐỌC. Giải thích các hàm ngày trong SQL bằng các ví dụ thực tế

ĐẦU RA

Quảng cáo

 

SQL FULL OUTER JOIN Sử dụng Mệnh đề Union và điều kiện Where

MySQL không hỗ trợ FULL OUTER JOIN nên để thực hiện FULL OUTER JOIN ta có thể sử dụng mệnh đề UNION giữa 2 truy vấn SQL select là LEFT OUTER JOIN và RIGHT OUTER JOIN, để lấy bản ghi trong MySQL có điều kiện sử dụng mệnh đề UNION ta có thể sử dụng mệnh đề Where trong SQL

Ví dụ 7. Viết truy vấn SQL để truy xuất tất cả hồ sơ bệnh nhân có tuổi đời trên 50 năm với tất cả thông tin chi tiết về bác sĩ sử dụng mệnh đề Union

SELECT  patient.patient_id AS 'Patient ID', patient.name AS 'Patient Name', patient.age AS 'Patient Age', patient.gender AS 'Patient Gender', patient.address AS 'Patient Address', patient.disease AS 'Patient Disease', doctor.name AS 'Doctor Name', doctor.age AS 'Doctor Age', doctor.address AS 'Doctor Location' FROM  patient 
LEFT OUTER JOIN doctor ON patient.doctor_id = doctor.doctor_id
WHERE [patient.age > 50]
UNION
SELECT  patient_1.patient_id AS 'Patient ID', patient_1.name AS 'Patient Name', patient_1.age AS 'Patient Age', patient_1.gender AS 'Patient Gender', patient_1.address AS 'Patient Address', patient_1.disease AS 'Patient Disease', doctor_1.name AS 'Doctor Name', doctor_1.age AS 'Doctor Age', doctor_1.address AS 'Doctor Location' FROM  patient AS patient_1 
RIGHT OUTER JOIN doctor AS doctor_1 ON patient_1.doctor_id = doctor_1.doctor_id 
WHERE [patient_1.age > 50]
  • Trong truy vấn trên, mệnh đề SQL Union được sử dụng để kết hợp tập kết quả của hai truy vấn chọn LEFT OUTER JOIN và RIGHT OUTER JOIN
  • Truy vấn chọn SQL đầu tiên sử dụng SQL LEFT OUTER JOIN để tham gia bảng bệnh nhân và bác sĩ trong đó bệnh nhân là bảng bên trái, mệnh đề SQL được áp dụng với cột tuổi để kiểm tra tình trạng
  • Truy vấn chọn SQL thứ hai được sử dụng SQL RIGHT OUTER JOIN để tham gia bảng bệnh nhân và bác sĩ, trong đó bác sĩ là bảng bên phải, mệnh đề SQL được áp dụng với cột tuổi để kiểm tra tình trạng

CŨNG ĐỌC. Đã giải quyết. Tên cột không rõ ràng của SQL [Hoạt động 100%]

ĐẦU RA

 

Tóm lược

Trong bài viết về SQL FULL OUTER JOIN này, chúng tôi đã trình bày tổng quan về SQL FULL OUTER JOIN với cú pháp và giải thích từng đối số cú pháp, chúng tôi đã thảo luận về các ví dụ thực tế về SQL FULL OUTER JOIN bắt đầu với hai bảng, nhiều bảng, SQL FULL OUTER JOIN với

Làm cách nào để tham gia nhiều bảng trong MySQL?

Có thể sử dụng nhiều câu lệnh nối với nhau để nối nhiều bảng cùng lúc. Để làm điều đó, bạn thêm câu lệnh INNER JOIN thứ hai và câu lệnh ON thứ hai để chỉ ra bảng thứ ba và mối quan hệ thứ hai .

Làm cách nào để tham gia 3 bảng trong tham gia đầy đủ bên ngoài trong SQL?

Cú pháp SQL FULL OUTER JOIN . FULL OUTER THAM GIA right_table_name TRÊN left_table. column[n] FROM left_table_name FULL JOIN | FULL OUTER JOIN right_table_name ON left_table. column_name = right_table. tên_cột [điều kiện] [thứ tự theo cột1,cột2. ];

Có thể tham gia đầy đủ trong MySQL không?

MySQL không cung cấp cú pháp cho phép nối ngoài đầy đủ , nhưng bạn có thể triển khai cú pháp này bằng cách kết hợp phép nối trái và phải.

Làm cách nào để nối 3 bảng trong MySQL với mệnh đề where?

Cách nối 3 bảng trở lên trong SQL .
Tham gia đơn giản. Đầu tiên, tất cả các bảng được nối bằng từ khóa THAM GIA, sau đó mệnh đề WHERE được sử dụng. TỪ Nhân viên e THAM GIA Tiền lương s THAM GIA Bộ phận d. Ở ĐÂU. ID = s. Emp_ID VÀ e. .
Tham gia lồng nhau. Câu lệnh JOIN lồng nhau được sử dụng với từ khóa ON. CHỌN e. ID, e. tên, s. Lương, d

Chủ Đề