Một số phép nối bảng trong Mysql

Link video hướng dẫn: link video

Cài đặt:

Trước tiên hãy khởi động mysql và cài đặt classicmodels database. Tải classicmodel database tại download Mình sẽ dùng classicmodels database để làm ví dụ.

Phép nối trong (Inner join)

Ví dụ: Bảng products là bảng lưu trữ các sản phẩm. Khi nào một sản phẩm được bán ra, nó được lưu trữ trong bảng OrderDetails cùng với các thông tin khác. Liên kết giữa các bảng này là cột productCode. Để lấy ra thông tin về các sản phẩm đã được bán ta có thể dùng INNER JOIN.

SELECT products.productCode, products.productName, orderdetails.orderNumber FROM products INNER JOIN orderdetails
on products.productCode = orderdetails.productCode;

Phép nối trái (Left join)

Ví dụ: Nếu muốn biết các khách hàng có những hóa đơn như thế nào, ta có thể làm như sau:

SELECT customers.customerNumber, customerName, orderNUmber, orders.status FROM customers LEFT JOIN orders
on customers.customerNumber = orders.customerNumber;

Nếu muốn biết tất cả những khách hàng không có hóa đơn nào ta làm như sau:

SELECT customers.customerNumber, customerName, orderNUmber, orders.status FROM customers LEFT JOIN orders
on customers.customerNumber = orders.customerNumber WHERE orderNumber is NULL ;

Phép tự nối

Ví dụ: Muốn đưa ra danh sách các thông tin nhân viên và thông tin người quản lý của họ:

SELECT concat (e1.lastName ," ",e1.firstName) as fullname, e1.email, concat (e2.lastName ," ",e2.firstName) as manager, e2.email
FROM employees e1, employees e2 WHERE e1.reportsTo = e2.employeeNumber;

Dưới đây là link một ảnh miêu tả khá dễ hiểu về tích chất của các phép nối và sự khác nhau của các phép nối. Xem tại đây

Video:

Trên là một số phép nối trong Mysql. Cảm ơn mọi người vì đã đọc. Rất mong nhận được các ý kiến đóng góp của mọi người.