MỞ ĐẦU
ORACLE TABLE
ORACLE QUERY
ORACLE CONDITION
ORACLE CLAUSES
ORACLE OPERATORS
ORACLE JOINS
ORACLE REFERENCE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Outer Join trong Oracle

Ở bài trước mình đã giới thiệu Inner Join trong Oracle rồi, vậy thì bài này mình sẽ nói về một thể loại join Join khác đó là Outer. Chúng ta sẽ tìm hiểu ba thể loại Outer Join, thứ nhất là Left Outer Join, thứ hai là Right Outer Join và cuối cùng là Full Outer Join.

1. Left Outer Join trong Oracle

Left Outer Join là phép kết giữa hai bảng, kết quả trả về sẽ như sau: Bảng thứ nhất (phía bên trái) sẽ lấy tất cả record cho dù có thỏa điều kiện ở ON hay không, còn bảng thứ hai (phía bên phải) thì chỉ lấy những record nào thỏa điều kiện ở ON. Những column nào không thỏa điều kiện ON sẽ có giá trị NULL.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Bạn xem hình sẽ dể hiểu hơn:

left outer1 png

Theo nguyên tắc thì tổng số column trả về sẽ là của cả hai bảng, và do một số record ở table1 không kết được với dữ liệu ở table2 nên những record đó vẫn chứa những column ở table2 nhưng dữ liệu của nó sẽ là NULL.

Cú pháp
SELECT columns  
FROM table1  
LEFT [OUTER] JOIN table2  
ON table1.column = table2.column; 

Ví dụ
SELECT suppliers.supplier_id, suppliers.supplier_name, order1.order_number  
FROM suppliers  
LEFT OUTER JOIN order1  
ON suppliers.supplier_id = order1.supplier_id;  

Giả sử kết quả của lệnh này sẽ như sau:

left outer2 png

Như trong hình thì do bảng suppliers là bảng phía bên trái nên nó được chỉ định là lấy tất cả, còn bảng order1 là bảng bên phải nên chỉ lấy những record thỏa điều kiện ở ON, vì vậy dữ liệu của các column nằm trong bảng order1 bị rỗng.

2. Right Oter Join trong Oracle

Ngược lại với Left Outer Join, lệnh này sẽ lấy tât cả record ở bảng thứ hai (bảng bên phải) và chỉ những record thỏa điều kiện ON ở bảng thứ nhất (bảng bên trái). Column nào không thỏa điều kiện ON sẽ có giá trị NULL

right outer1 png

Cú pháp
SELECT columns  
FROM table1  
RIGHT [OUTER] JOIN table2  
ON table1.column = table2.column;   

Ví dụ
SELECT order1.order_number, order1.city, suppliers.supplier_name  
FROM suppliers  
RIGHT OUTER JOIN order1  
ON suppliers.supplier_id = order1.supplier_id;

3. Full Outer Join trong Oracle

Full Outer Join sẽ là hợp của cả Lef Outer Join và Right Outer Join, nghĩa là nó sẽ lấy tất cả các record ở bảng thứ nhất lẫn bảng thứ hai. Column nào không thỏa điều kiện ở ON sẽ có giá trị NULL.

full outer1 png

Cú pháp
SELECT columns  
FROM table1  
FULL [OUTER] JOIN table2  
ON table1.column = table2.column;   

Ví dụ
SELECT suppliers.supplier_id, suppliers.supplier_name, order1.order_number  
FROM suppliers  
FULL OUTER JOIN order1  
ON suppliers.supplier_id = order1.supplier_id;  

4. Lời kết

Đối với lệnh JOIN này thì bạn phải tự thực hành trên chính CSDL của bạn thì mới dễ hiểu, vì vậy cố gắng viết thật nhiều câu SQL, chạy và xem kết quả nhé.

Bài tiếp theo mình sẽ giới thiệu về Self Join, đây không phải là là lệnh gì đặc biệt mà nó chỉ là cách sử dụng JOIN trên cùng một table.

Cùng chuyên mục:

Hàm Hàm ASCII trong Oracle

Hàm Hàm ASCII trong Oracle

Cách sử dụng hàm Hàm ASCII trong 150

Hàm Hàm ASCIISTR trong Oracle

Hàm Hàm ASCIISTR trong Oracle

Cách sử dụng hàm Hàm ASCIISTR trong 150

Hàm Hàm CHR trong Oracle

Hàm Hàm CHR trong Oracle

Cách sử dụng hàm Hàm CHR trong 150

Hàm Hàm COMPOSE trong Oracle

Hàm Hàm COMPOSE trong Oracle

Cách sử dụng hàm Hàm COMPOSE trong 150

Hàm Hàm CONCAT trong Oracle

Hàm Hàm CONCAT trong Oracle

Cách sử dụng hàm Hàm CONCAT trong 150

Hàm Hàm CONVERT trong Oracle

Hàm Hàm CONVERT trong Oracle

Cách sử dụng hàm Hàm CONVERT trong 150

Hàm Hàm DECOMPOSE trong Oracle

Hàm Hàm DECOMPOSE trong Oracle

Cách sử dụng hàm Hàm DECOMPOSE trong 150

Hàm Hàm DUM trong Oracle

Hàm Hàm DUM trong Oracle

Cách sử dụng hàm Hàm DUM trong 150

Hàm Hàm INITCAP trong Oracle

Hàm Hàm INITCAP trong Oracle

Cách sử dụng hàm Hàm INITCAP trong 150

Hàm Hàm INSTR trong Oracle

Hàm Hàm INSTR trong Oracle

Cách sử dụng hàm Hàm INSTR trong 150

Hàm Hàm INSTR2 trong Oracle

Hàm Hàm INSTR2 trong Oracle

Cách sử dụng hàm Hàm INSTR2 trong 150

Hàm Hàm INSTR4 trong Oracle

Hàm Hàm INSTR4 trong Oracle

Cách sử dụng hàm Hàm INSTR4 trong 150

Hàm Hàm INSTRB trong Oracle

Hàm Hàm INSTRB trong Oracle

Cách sử dụng hàm Hàm INSTRB trong 150

Hàm Hàm INSTRC trong Oracle

Hàm Hàm INSTRC trong Oracle

Cách sử dụng hàm Hàm INSTRC trong 150

Hàm Hàm LENGTH trong Oracle

Hàm Hàm LENGTH trong Oracle

Cách sử dụng hàm Hàm LENGTH trong 150

Hàm Hàm LENGTH2 trong Oracle

Hàm Hàm LENGTH2 trong Oracle

Cách sử dụng hàm Hàm LENGTH2 trong 150

Hàm Hàm LOWER trong Oracle

Hàm Hàm LOWER trong Oracle

Cách sử dụng hàm Hàm LOWER trong 150

Hàm Hàm LPAD trong Oracle

Hàm Hàm LPAD trong Oracle

Cách sử dụng hàm Hàm LPAD trong 150

Hàm Hàm LTRIM trong Oracle

Hàm Hàm LTRIM trong Oracle

Cách sử dụng hàm Hàm LTRIM trong 150

Hàm Hàm NCHR trong Oracle

Hàm Hàm NCHR trong Oracle

Cách sử dụng hàm Hàm NCHR trong 150

Top