Các loại JOIN trong Oracle
Trong phần này chúng ta sẽ nói về JOIN, một lệnh dùng để kết nối 2 bảng với nhau giống như phép tích đề cát, tuy nhiên về mặt tối ưu thì nó được xem là tốt hơn so với phép tích. Nếu bạn chưa hiểu về phép tích thì mình sẽ giải thích lại một chút.
1. Phép tích 2 table trong Oracle
Tích là phép nhân, vì vậy khi bạn tích 2 table thì nó sẽ tạo thành một bảng mới vói số lượng records sẽ bằng tích số lượng records bảng A nhân với records bảng B.
Giả sử table A có 20 records, table b có 30 records, thì khi bạn thực hiện phép tích như sau:
SELECT * FROM A, B
Thì kết quả sẽ trả về là danh sách dữ liệu gồm 20 x 30 = 600 records.
Bài viết này được đăng tại [free tuts .net]
Giả sử table A có 3 column, table B có 5 column thì khi bạn tích sẽ trả về một danh sách gồm 3 + 5 = 8 column.
2. JOIN trong Oracle
JOIN là một câu truy vấn dùng để kết nối dữ liệu của hai bảng với nhau (có thể là view hoặc table), nó sẽ liên kết và tạo ra một bảng trung gian chứa dữ liệu của cả hai.
Cú pháp của JOIN như sau:
SELECT columns FROM A [type] JOIN B ON condition
Trong đó:
[type]
là thể loại JOIN, chúng ta có 3 loại đó là INNER JOIN, LEFT JOIN và RIGHT JOIN.condition
là điều kiện lọc khi join
Nếu bạn thực hiện phép JOIN mà không có điều kiện lọc condition thì câu truy vấn lúc này sẽ trở thành phép tích.
Còn nếu bạn có bổ sung điều kiện lọc thì kết quả số lượng records trong bảng danh sách trả về sẽ phụ thuộc vào điều kiện lọc đó, vì vậy lệnh JOIN sẽ tối ưu hơn.
3. Lời kết
Bài này mình chỉ giới thiệu sơ lược về JOIN, các bài tiếp theo mình sẽ lần lượt hướng dẫn các bạn cách sử dụng JOIN trong Oracle. Chúc bạn học tốt và nhớ đọc các bài tiếp theo nhé.