You are on page 1of 2

Bài 4: Joining Tables

1 ) Alias ( column alias và tables alias)


- Đặt 1 tên khác dễ viết cho bảng hoặc cột
- CONCAT_WS()
VD : SELECT
CONCAT_WS(", " , lastName, firstName) AS CC
FROM employees;
VD : SELECT
orderNumber as Order_No
SUM(priceEach * quantityOrdered) AS total
FROM
orderDetails
GROUP BY
Order_No
HAVING
total > 60000;
Lưu ý : Bạn ko đc sử dụng cột đã Alias trong mệnh đề WHERE, thay vào đó phải dùng
mệnh đề HAVING

2) Join clause
- Cơ sở dữ liệu quan hệ bao gồm nhiều bảng liên quan liên kết với nhau bằng cách
sử dụng các cột chung,
được gọi là cột khóa ngoại.
- Join là liên kết nhiều bảng hoặc chính nó dựa vào cột chung
- ( INNNER JOIN, LEFT JOIN, RIGHT JOIN, CROSS JOIN)
a) Inner join
- SELECT column
FROM table_1
INNER JOIN table_2 ON join_condition
INNER JOIN table_3 ON join_conditon;
( Inner join chỉ join các hàng thuộc cả hai bảng, có thể dùng USING thay thế)
Lưu ý : Có thể kết hợp thêm mệnh đề Where , group by tùy theo yêu cầu của mình.
b ) LEFT JOIN
- Left join chọn dữ liệu bên trái rồi so sánh với từng hàng cột bên phải.
- Hiểu đơn giản là lấy tất cả hàng bên trái, kể cả bảng bên phải ko có. Giá trị
bảng bên phải ko có
thì để giá trị NULL
SELECT column
FROM table_1
LEFT JOIN table_2 USING( column_name_chung);
WHERE c.table_1 IS NULL ( tìm giá trị cột bên bảng trái mà ko có giá trị bên bảng
phải);
c) RIGHT JOIN
- Tương tự như LEFT JOIN
d) CROSS JOIN
- Là câu lệnh join ko cần điều kiện
- Phép nối chéo kết hợp mỗi hàng từ bảng đầu tiên với mỗi hàng từ bảng bên phải để
tạo thành tập kết quả.
Giả sử bảng 1 có n hàng, bảng 2 có m hàng. Cross join sẽ có n x m hàng.
VD : SELECT *
FROM t1
CROSS JOIN t2
WHERE t1.id = t2.id;( Nếu thêm mệnh đề WHERE thì Cross join hoạt động như
inner join)
e) SELF JOIN
- a case that need to join a table to itself đc hiểu là nối nó với chính nó.
- Self join để so sánh 1 hàng với các hàng khác trong 1 bảng
- Khi dùng self join ta phải đặt Alias cho bảng
VD: SELECT
FROM table t1
INNER JOIN table t2
ON t1.colum1 = t2.colum2;

You might also like