06/04/2021, 14:51

Inner Join trong Oracle - Oracle căn bản

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 ...

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.

inner join1 png

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:

inner join2 png
inner join supplier png

Order1:

inner join3 png
inner join order png
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:

inner join4 png

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.

Trần Trung Dũng

15 chủ đề

2610 bài viết

Cùng chủ đề
0