Bài giảng thực hành cơ SỞ DỮ liệU


PHÉP NỐI TRÁI (LEFT JOIN)



tải về 4.27 Mb.
Chế độ xem pdf
trang33/43
Chuyển đổi dữ liệu13.11.2023
Kích4.27 Mb.
#55638
1   ...   29   30   31   32   33   34   35   36   ...   43
TH CSDL 2015Sep
NEW.Bài giảng CSDL sau nghiệm thu-2023, 6. Đề cương Cơ sở dữ liệu- sau nghiệm thu. 23.02.2022, Chuong01-CSDL
2. PHÉP NỐI TRÁI (LEFT JOIN) 
LEFT JOIN cũng là một tùy chọn của câu lệnh SELECT cho phép lấy thêm dữ liệu từ 
các bảng khác. LEFT JOIN bao gồm các từ khóa LEFT JOIN, tiếp theo là bảng thứ hai
muốn thực hiện nối. Yếu tố tiếp theo là từ khóa ON và theo sau bởi các điều kiện nối.
Mệnh đề LEFT JOIN sẽ được thực hiện như sau: khi một hàng từ bảng bên trái phù hợp 
với một hàng từ bảng bên phải dựa trên điều kiện nối, nội dung của hàng đó sẽ được lựa 
chọn như một dòng trong kết quả đầu ra. Khi một hàng trong bảng bên trái không tìm 
được hàng nào phù hợp trong bảng nối, nó vẫn được xuất hiện trong kết quả đầu ra, 
nhưng kết hợp với một hàng "giả" từ bảng bên phải với giá trị NULL cho tất cả các cột.


Tóm lại, LEFT JOIN cho phép ch
có bản ghi nào phù hợp với nó trong b
Ví dụ: sử dụng LEFT JOIN
Chúng ta hãy xét vào hai bảng 
hoá đơn nào đó của họ và tình tr
JOIN như sau:
SELECT c.customerNumber, 
FROM customers c 
LEFT JOIN orders o ON c.customerNumber = o.customerNumber;
i, LEFT JOIN cho phép chọn tất cả các hàng từ bảng bên trái ngay c
i nó trong bảng bên phải.
ng customers và orders. Nếu muốn biết một khách hàng v
và tình trạng hoá đơn đó thế nào, có thể sử dụng MySQL LEFT 
SELECT c.customerNumber, customerName,orderNUmber, o.status
LEFT JOIN orders o ON c.customerNumber = o.customerNumber;
84 
ng bên trái ngay cả khi không 
t khách hàng với 
ng MySQL LEFT 
customerName,orderNUmber, o.status 
LEFT JOIN orders o ON c.customerNumber = o.customerNumber; 


Ở bảng kết quả trên, có thể nh
những bản ghi có thông tin khách h
NULL. Điều này có nghĩa là nh
nào được lưu trong cơ sở dữ li
LEFT JOIN rất hữu ích khi muốn t
với bất kỳ một bản ghi nào trong b
thêm một mệnh đề WHERE để lựa chọn các h
bảng bên phải . Vì vậy, để tìm th
nào trong cơ sở dữ liệu của chúng
SELECT c.customerNumber, customerName,orderNUmber, o.status
FROM customers c 
LEFT JOIN orders o ON c.customerNumber = o.customerNumber
WHERE orderNumber is NULL
Kết quả trả về như sau: 
ể nhìn thấy tất cả các khách hàng được liệt kê
ững bản ghi có thông tin khách hàng nhưng tất cả các thông tin v
à những khách hàng này không có bất kỳ một đ
ệu của chúng ta.
ất hữu ích khi muốn tìm các bản ghi trong bảng bên trái mà không phù h
ào trong bảng bên phải. có thể thực hiện điều n
ột mệnh đề WHERE để lựa chọn các hàng chỉ có giá trị NULL trong một cột ở 
ìm thấy tất cả các khách hàng không có bất kỳ đ
ệu của chúng ta, có thể sử dụng LEFT JOIN như sau:
SELECT c.customerNumber, customerName,orderNUmber, o.status
LEFT JOIN orders o ON c.customerNumber = o.customerNumber
WHERE orderNumber is NULL 
85 
ê.
Tuy nhiên, có 
các thông tin về đơn hàng là 
ỳ một đơn đặt hàng 
ên trái mà không phù hợp 
ải. có thể thực hiện điều này bằng cách 
ỉ có giá trị NULL trong một cột ở 
ất kỳ đơn đặt hàng 
ư sau:
SELECT c.customerNumber, customerName,orderNUmber, o.status 
LEFT JOIN orders o ON c.customerNumber = o.customerNumber 


Như vậy, truy vấn chỉ trả về các
các giá trị NULL. 
Tương tự như vậy, để tìm ra nh
bước đầu, thực hiện truy vấn nh
Select * from employees e 
left join customers c 
on e.employeenumber=c.salesrepemployeenumber
các khách hàng mà không có bất kỳ đơn hàng nào nh
những nhân viên không làm nhiệm vụ chăm sóc khách hàng, 
ấn như sau: 
Select * from employees e
left join customers c
on e.employeenumber=c.salesrepemployeenumber 
86 
đơn hàng nào nhờ vào 
chăm sóc khách hàng, 


87 
Sau đó lọc ra những bản ghi nhận giá trị null tại cột customerNumber, đó chính là kết quả 
của truy vấn. 
Select * from employees e
left join customers c
on e.employeenumber=c.salesrepemployeenumber 
where customerNumber is null 

tải về 4.27 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   29   30   31   32   33   34   35   36   ...   43




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương