1. COMPLEX QUERY
Obyektif :
Setelah menyelesaikan bahasan ini, diharapkan dapat melakukan hal berikut:
Sebuah query kompleks adalah query parameter yang menggunakan lebih dari satu
nilai parameter pada dua atau lebih kriteria.
1.2. Equijoin
Equijoin adalah jenis tertentu dari komparator berbasis join, yang hanya
menggunakan perbandingan kesetaraan dalam predikat join. Menggunakan operator
perbandingan lainnya (seperti < ) mendiskualifikasi bergabung sebagai equi join.
Equijoin menggunakan tanda equal (=) untuk membandingkan operatornya.
Terdapat 2 sintaks yang berbeda untuk menuliskan equijoin, yaitu ANSI Join
Syntax dan SQL Server Join Syntax.
Contoh :
ANSI Join Syntax
Select emp.empno, emp.ename, dept.loc, emp.job
From emp JOIN dept
ON emp.deptno = dept.deptno
SQL Server Join Syntax
Select emp.empno, emp.ename, dept.loc, emp.job
From emp, dept Where emp.deptno = dept.deptno
Contoh :
ANSI Join Syntax
Select emp.empno, emp.ename, d.*
FROM emp JOIN dept
ON dname < loc
Sintaks :
SELECT <SELECT list>
FROM <the table you want to be the ‘LEFT’ table>
<LEFT | RIGHT> [OUTER]
JOIN < the table you want to be the ‘RIGHT’ table>
ON <JOIN CONDITION> [OTHER OPTION]
Hasil Join table akan sama seperti pada Left Outer Join dimana data yang tidak
terdefinisi pada table sebelah kiri akan memunculkan isi data berupa NULL.
Contoh:
SELECT ename
FROM emp
WHERE empno IN ( SELECT empno FROM emp
WHERE deptno = 30)
SELECT a.*
FROM dept a
WHERE a.loc IN (SELECT b.loc FROM dept b
WHERE a.deptno = b.deptno)
Contoh :
SELECT ename
FROM emp
WHERE EXISTS (SELECT * FROM dept