Mục tiêu

Truy vấn dữ liệu từ nhiều bảng- Luyện tập sử dụng câu lệnh JOIN.

Mô tả- Truy vấn dữ liệu từ nhiều bảng

Truy vấn dữ liệu từ các bảng của CSDL bán hàng có sẵn.

Hướng dẫn nộp bài:

  • Up code lên github
  • Paste link github vào phần nộp bài

Hướng dẫn thực hiện

Bước 1: Sử dụng inner join để lấy dữ liệu từ hai bảng.

Quan sát 3 bảng customers, orders và payments trong csdl classicmodels.

Truy vấn dữ liệu từ nhiều bảng

Bây giờ, nếu bạn muốn lấy customerNumber, customerName, phone, paymentDate, amount từ hai bảng customers và payments với điều kiện là các khách hàng sống ở thành phố Las Vegas thực hiện truy vấn sau:

Trong câu lệnh trên đối với mỗi hàng trong bảng customers, mệnh đề inner join so sanh nó với mỗi hàng của bảng payments để kiểm tra nếu cả hai thỏa mãn điều kiện nối (customers.customerNumber = payments.customerNumber). Khi điều kiện kết nối được khớp, nó sẽ trả lại hàng kết hợp các cột trong cả hai bảng customers và payments.

Kết quả trả về:

Bước 2: Sử dụng left join để lấy dữ liệu từ hai bảng.

Quan sát 2 bảng customers và orders trong csdl classicmodels.

Để tìm tất cả các đơn hàng thuộc từng khách hàng, bạn có thể sử dụng mệnh đề LEFT JOIN như sau:

Kết quả trả về

Tất cả các bản ghi trong bảng customers đều được đưa vào bộ kết quả. Tuy nhiên, có những bản ghi trong bộ kết quả có dữ liệu khách hàng nhưng không có dữ liệu đặt hàng ví dụ: 168, 169, vv các dữ liệu lệnh trong những hàng này là NULL. Điều này có nghĩa là những khách hàng này không có đơn hàng nào trong bảng orders.

Nếu bạn thay thế mệnh đề LEFT JOIN bởi mệnh đề INNER JOIN, bạn chỉ nhận được những khách hàng có đơn đặt hàng trong bảng đơn đặt hàng.

Để tìm tất cả khách hàng chưa đặt hàng bất kỳ sản phẩm nào, bạn có thể sử dụng truy vấn sau:

Kết quả trả về:

 Qua bài tập trên bạn đã luyện tập:

  • Truy vấn dữ liệu từ nhiều bảng với INNER JOIN
  • Truy vấn dữ liệu từ nhiều bảng với LEFT JOIN

Trên đây CodeGym đã cùng với bạn luyện tập sử dụng câu lệnh JOIN. Hãy chụp ảnh màn hình và nộp bài thực hành của bạn trên CodeGymX để cùng nhau luyện tập nhé!


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.