Inner Join trong Oracle
Trong bài này mình sẽ giới thiệu thể loại JOIN đầu tiên đó là INNER JOIN. Đây là loại đơn giản và dễ hiểu nhất và thường được sử dụng nhất khi quản lý database.
1. Inner Join trong Oracle
Trước tiên bạn xem cú pháp đã nhé.
SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;
Điều kiện ở ON chính là điều kiện lọc trong quá trình hợp 2 table với nhau, và thường thì đó là so sánh giữa khóa chính của bảng A tới khóa ngoại của bảng B (hoặc ngược lại).
Bạn hãy xem hình dưới đây để hiểu rõ hơn.
Bài viết này được đăng tại [free tuts .net]
Nếu so sánh với câu truy vấn thông thường thì sẽ tương tự với câu truy vấn sau:
SELECT columns FROM table1, table2 WHERE table1.column = table2.column;
Nhưng xét về tốc độ thì INNER JOIN sẽ nhanh hơn.
2. Ví dụ về INNER JOIN trong Oracle
Giả sử ta có 2 table đó là "Suppliers" và "Order1".
Suppliers:
Order1:
Nếu bạn để ý kĩ hơn thì sẽ thấy bảng Order1 sẽ có một khóa ngoại đó là supplier_id
và trỏ đến khóa chính supplier_id
ở bảng Suppliers.
Bây giờ mình sẽ viết câu truy vấn như sau: Lấy danh sách supplier và đơn hàng của từng suppliers.
SELECT suppliers.supplier_id, suppliers.supplier_name, order1.order_number FROM suppliers INNER JOIN order1 ON suppliers.supplier_id = order1.supplier_id;
Nếu chạy câu truy vấn này thì bạn sẽ thu được kết quả như hình sau:
3. Lời kết
Như vậy là bạn đã hiểu về INNER JOIN trong Oracle rồi phải không nào? Nếu vẫn chưa hiểu thì bạn hãy làm lại ví dụ thật kĩ nhé.
Mấu chốt của bài này là bạn phải phân biệt và hiểu giữa tích 2 bảng và INNER JOIN giữa hai bảng, điều này sẽ giúp bạn dễ dàng nắm bắt hơn ở các bài tiếp theo đó là LEFT JOIN và RIGHT JOINT, hay còn gọi là Outer Join.