06/04/2021, 14:51

Các loại JOIN trong Oracle - Oracle căn bản

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

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.

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

Trần Trung Dũng

15 chủ đề

2610 bài viết

Cùng chủ đề
0