Selasa, 14 Desember 2010

berbagai operasi JOIN


  1. INNER JOIN
nggabungkan 2 table yang memiliki kolom yang sama, dan membentuk 1 table gabungan. Tabel ini merupakan temporary, penggabungan table tidak merubah table aslinya.

Syntax :
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
Tabel :
The "Persons" table:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
The "Orders" table:
O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15

Hasilnya :
LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678

  1. LEFT OUTER JOIN
Menggabungkan 2 table yang memiliki kolom yang sama, namun data pada table kiri tetap ditampilkan walaupun tidak terdapat pada table kanan. Tabel ini merupakan temporary, penggabungan table tidak merubah table aslinya.

Syntax :
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
LEFT JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName

The "Persons" table:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
The "Orders" table:
O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15
The result-set will look like this:
LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678
Svendson Tove


  1. RIGHT OUTER JOIN
Menggabungkan 2 table yang memiliki kolom yang sama, namun data pada table kanan tetap ditampilkan walaupun tidak terdapat pada table kiri. Tabel ini merupakan temporary, penggabungan table tidak merubah table aslinya.

Syntax :
SELECT * FROM Individual AS Ind
RIGHT JOIN Publisher AS Pub
ON Ind.IndividualId = Pub.IndividualId

Tabel :
The "Persons" table:
P_Id LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
The "Orders" table:
O_Id OrderNo P_Id
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 15
The result-set will look like this:
LastName FirstName OrderNo
Hansen Ola 22456
Hansen Ola 24562
Pettersen Kari 77895
Pettersen Kari 44678


34764

  1. SELF JOIN
Menggabungkan satu tabel dengan table dirinya sendiri yang biasanya membandingkan kondisi data satu dengan data lainnya pada table tersebut. Tabel ini merupakan temporary, penggabungan table tidak merubah table aslinya.


Syntax :
SELECT F.EmployeeID, F.LastName, S.EmployeeID, S.LastName, F.Country
FROM Employee F, Employee S
WHERE F.Country = S.Country
AND F.EmployeeID < S.EmployeeID
ORDER BY F.EmployeeID, S.EmployeeID;

Table :
Employee Table
EmployeeID
LastName
Country
DepartmentID
123
Rafferty
Australia
31
124
Jones
Australia
33
145
Steinberg
Australia
33
201
Robinson
United States
34
305
Smith
Germany
34
306
John
Germany
NULL

Result :
Employee Table after Self-join by Country
EmployeeID
LastName
EmployeeID
LastName
Country
123
Rafferty
124
Jones
Australia
123
Rafferty
145
Steinberg
Australia
124
Jones
145
Steinberg
Australia
305
Smith
306
John
Germany

Tidak ada komentar:

Posting Komentar