Join: truy vấn dữ liệu kết hợp từ nhiều bảng
Có 4 loại JOIN:
INNER JOIN: trả về bản ghi có mặt của 2 bảng
LEFT JOIN: trả về tất cả bản ghi của bảng chứa khóa chính và bản ghi tương ứng của bảng chứa khóa phụ
RIGHT JOIN: trả về tất cả bản ghi của bảng chứa khóa phụ và bản ghi tương ứng của bảng chứa khóa chính
FULL JOIN: trả về tất cả bản ghi của 2 bảng
SELF JOIN: 1 trường trỏ đến 1 trường khác trong bảng
VD: SELECT order_id, customer.customer_name FROM order INNER JOIN customer ON order.customer_id = customer_id
Câu lệnh trên sẽ lấy dữ liệu order_id, customer_name tử bảng order ánh xạ đến bảng customer với khóa ngoại customer_id của bảng order bằng khóa chính customer_id của bảng customer
VD: trường FOREIGN KEY `report_to` trỏ đến trường PRIMARY KEY `staff_id` là SELF JOIN
JOIN càng nhiều thì hiệu năng càng tăng
AS: sử dụng để đổi tên trường theo định danh, tuy nhiên khi truy vấn vẫn gọi tên trường cũ
GROUP BY: nhóm dữ liệu theo trường
HAVING: thỏa mãn điều kiện, sử dụng được với hàm tổng hợp: COUNT(), MIN(), MAX(), . . ., luôn đứng sau GROUP BY, khi không có GROUP BY thì HAVING = WHERE
WHERE: thỏa mãn điều kiện, đứng trước GROUP BY, không thể sử dụng với hàm tổng hợp
ORDER BY: sắp xếp trường theo tăng dần (ASC) hoặc giảm dần (DESC)
Thứ tự câu lệnh:
SELECT . . . FROM . . . WHERE . . . GROUP BY . . . HAVING. . . . ORDER BY . . . ASC/DESC