THAM GIA TRÁI PostgreSQL
CHỖ NỐI BÊN TRÁI
Từ khóa LEFT JOIN
chọn TẤT CẢ các bản ghi từ bảng "trái" và các bản ghi phù hợp từ bảng "phải". Kết quả là 0 bản ghi từ phía bên phải nếu không có kết quả trùng khớp.
Hãy xem một ví dụ sử dụng bảng testproducts
giả của chúng tôi:
testproduct_id | product_name
| category_id
----------------+------------------------+-------------
1 | Johns Fruit Cake |
3
2 | Marys Healthy Mix |
9
3 | Peters Scary Stuff |
10
4 | Jims Secret Recipe |
11
5 | Elisabeths Best Apples |
12
6 | Janes Favorite Cheese |
4
7 | Billys Home Made Pizza |
13
8 | Ellas Special Salmon |
8
9 | Roberts Rich Spaghetti |
5
10 |
Mias Popular Ice |
14
(10 rows)
Chúng ta sẽ cố gắng nối bảng testproducts
với bảng categories
:
category_id | category_name |
description
-------------+----------------+------------------------------------------------------------
1 | Beverages | Soft drinks, coffees, teas,
beers, and ales
2 | Condiments | Sweet and savory sauces, relishes,
spreads, and seasonings
3 | Confections | Desserts, candies, and sweet breads
4 | Dairy Products | Cheeses
5 | Grains/Cereals | Breads, crackers, pasta, and cereal
6 | Meat/Poultry | Prepared meats
7 | Produce | Dried fruit and bean
curd
8 |
Seafood | Seaweed and fish
(8
rows)
Lưu ý: Nhiều sản phẩm trong testproducts
có category_id
không khớp với bất kỳ danh mục nào trong bảng categories
.
Bằng cách sử dụng LEFT JOIN
chúng tôi sẽ nhận được tất cả các bản ghi từ testpoducts
, ngay cả những bản ghi không khớp trong bảng categories
:
Ví dụ
Kết hợp testproducts
với categories
bằng cột category_id
:
SELECT
testproduct_id, product_name, category_name
FROM testproducts
LEFT JOIN categories ON testproducts.category_id = categories.category_id;
Chạy ví dụ »Kết quả
Tất cả các bản ghi từ testproducts
và chỉ các bản ghi trùng khớp từ categories
:
testproduct_id | product_name
| category_name
----------------+------------------------+----------------
1 | Johns Fruit Cake | Confections
2 | Marys Healthy Mix |
3 | Peters Scary Stuff |
4 | Jims Secret Recipe |
5 | Elisabeths Best Apples |
6 | Janes Favorite Cheese | Dairy Products
7 | Billys Home Made Pizza |
8 | Ellas Special Salmon | Seafood
9 | Roberts Rich Spaghetti | Grains/Cereals
10 | Mias Popular Ice |
(10 rows)
Lưu ý: LEFT JOIN
và LEFT OUTER JOIN
sẽ cho kết quả như nhau.
OUTER
là loại kết nối mặc định cho LEFT JOIN
, vì vậy khi bạn viết LEFT JOIN
trình phân tích cú pháp thực sự ghi LEFT OUTER JOIN
.