Thursday, September 1, 2011

SQL Join Revealed - Part 2 -

Continued from Part 1

Belajar dari pengalaman, saya menyadari ada kesalahan konsep tentang Left, Right Inner dan Outer yang selama ini saya yakini berbeda. Namun ternyata, Left Join dan Right Join merupakan bagian dari Outer Join :)

Seperti yang pernah dijelaskan sebelumnya,
Inner = analogi intersect pada diagram venn. (A n B).

Outer = analogi union pada diagram venn. (A U B).

Berikut adalah ilustrasi detailnya:

UNION (A U B) menganalogikan FULL [OUTER] JOIN.
INTERSECTION (A n B) menganalogikan INNER JOIN.
DIFERENCIA (A-B) menganalogikan RIGHT [OUTER] JOIN.
DIFERENCIA (B-A) menganalogikan LEFT [OUTER] JOIN.

Untuk melakukan join 3 atau lebih tabel, dapat dilakukan dengan sintaks WHERE atau dengan JOIN.
ex.
SELECT p.Name, v.Name
FROM Production.Product p
JOIN Purchasing.ProductVendor pv
ON p.ProductID = pv.ProductID
JOIN Purchasing.Vendor v
ON pv.BusinessEntityID = v.BusinessEntityID
WHERE ProductSubcategoryID = 15
ORDER BY v.Name;

ex.
SELECT lastname, firstname, tag, open_weekends
FROM drivers, vehicles, locations
WHERE drivers.location = vehicles.location
AND vehicles.location = locations.location
AND locations.open_weekends = 'Yes'


Jika ada salah, mohon koreksinya :)
Maksud hati hanya mao sharing yang saya tau kok :D

No comments:

Post a Comment