Sử Dụng (+) để Outer Join Bảng Trong Oracle SQL | Dũng Vũ Blog
Có thể bạn quan tâm
Giả sử ta có 2 bảng với dữ liệu như sau
SQL> select * from emp; EMP DEP JOB FIRST_NAME LAST_NAME SALARY --- --- --- ---------- ---------- ---------- E01 D01 J01 名字1 名前1 100 E02 D01 J01 名前2 名前2 250 E03 D02 J02 名前3 名前3 200 E04 D02 J03 名前4 名前4 200 E05 D02 J03 名前5 名前5 130 E06 D03 J03 名前6 名前6 150| 12345678910 | SQL>select *from emp; EMP DEP JOB FIRST_NAME LAST_NAME SALARY------ ---------------------------------E01 D01 J01名字1 名前1 100E02 D01 J01名前2 名前2 250E03 D02 J02名前3 名前3 200E04 D02 J03名前4 名前4 200E05 D02 J03名前5 名前5 130E06 D03 J03名前6 名前6 150 |
| 12345678 | SQL>select *from dept; DEP DEPT_NAME--- ----------D01 総務部D02 経理部D04 営業部D05 管理部 |
Bây giờ ta sẽ lấy dữ liệu của bảng emp left join với bảng dept. Cách viết thông thường như sau:
SQL> select a.emp_id, a.dept_id, b.dept_id, b.dept_name from emp a left outer join dept b on (a.dept_id = b.dept_id ); EMP DEP DEP DEPT_NAME --- --- --- ---------- E01 D01 D01 総務部 E02 D01 D01 総務部 E03 D02 D02 経理部 E04 D02 D02 経理部 E05 D02 D02 経理部 E06 D03| 1234567891011121314 | SQL>select a.emp_id,a.dept_id,b.dept_id,b.dept_name from empa left outer join deptb on(a.dept_id=b.dept_id); EMP DEP DEP DEPT_NAME--- --- -------------E01 D01 D01 総務部E02 D01 D01 総務部E03 D02 D02 経理部E04 D02 D02 経理部E05 D02 D02 経理部E06 D03 |
Với cách viết sử dụng (+) trong oracle DB
SQL> select a.emp_id, a.dept_id, b.dept_id, b.dept_name from emp a,dept b where a.dept_id = b.dept_id (+); EMP DEP DEP DEPT_NAME --- --- --- ---------- E01 D01 D01 総務部 E02 D01 D01 総務部 E03 D02 D02 経理部 E04 D02 D02 経理部 E05 D02 D02 経理部 E06 D03| 1234567891011121314 | SQL>select a.emp_id,a.dept_id,b.dept_id,b.dept_name from empa,deptb where a.dept_id=b.dept_id(+); EMP DEP DEP DEPT_NAME--- --- -------------E01 D01 D01 総務部E02 D01 D01 総務部E03 D02 D02 経理部E04 D02 D02 経理部E05 D02 D02 経理部E06 D03 |
※ Lợi ích của việc sử dụng (+) khi viết query outer join đó là ko cần quan tâm thứ tự bảng. Ví dụ khi muốn bảng dept left join với emp (tương đương với emp right outer join với dept) thì ta chỉ cần đổi (+) sang vế trái (a.dept_id (+) = b.dept_id).
※Một ưu điểm nữa là khi outer join nhiều bảng với nhau sẽ viết nhanh hơn so với cách viết thông thường.
※Nhược điểm của cách viết này là không tường minh. Khi chưa quen sẽ rất dễ nhầm lẫn giữa left join và right join
Từ khóa » Join Nhiều Bảng Trong Oracle
-
Hiển Thị Dữ Liệu Từ Nhiều Table Bằng Cách Sử Dụng Join - TungDT
-
Chọn Nhiều Bảng Tại Lệnh From Trong Oracle - Freetuts
-
Inner Join Trong Oracle - Freetuts
-
Truy Vấn Nhiều Bảng Với JOIN Trong SQL
-
Các Loại JOIN Trong Oracle - Vi
-
SQL Cơ Bản - Bài 5: JOIN
-
Chọn Nhiều Bảng Tại Lệnh From Trong Oracle
-
Hướng Dẫn Học SQL Cho Người Mới Bắt đầu Với Oracle
-
Câu Lệnh SQL Join: Các Loại Join Trong SQL - Viblo
-
Sử Dụng Gợi ý Trong Oracle - Viblo
-
Mệnh đề JOIN Trong SQL - Học Sql Cơ Bản đến Nâng Cao - VietTuts
-
Truy Vấn Dữ Liệu Từ Nhiều Bảng Trong Sql? - Tạo Website
-
DELETE - Lệnh Xóa Dữ Liệu - SQL & Database