SQL JOIN

Ang SQL join ay ginagamit upang kumuha ng data mula sa dalawang o higit pang talahanayan ayon sa relasyon ng kolumna sa mga talahanayan.

Join at Key

Minsan upang makakuha ng kumpletong resulta, kailangan namin makakuha ng resulta mula sa dalawang o higit pang talahanayan. Kailangan namin gawin ang join.

Ang mga talahanayan sa database ay maaaring maipagsangguni sa pamamagitan ng susi. Ang pangunahing kalakhan (Primary Key) ay isang kolumna kung saan ang bawat halaga ng bawat linya ay natatanging. Sa talahanayan, ang bawat halaga ng bawat pangunahing kalakhan ay natatanging. Ang layunin nito ay upang ipagsangguni ang mga data sa pagitan ng talahanayan ng walang pagkakapareho ng lahat ng data ng bawat talahanayan.

Tingnan ang "Persons" talahanayan:

Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

Paging higit sa "Id_P" kolumna ay ang pangunahing kalakhan ng Persons talahanayan. Ito nangangahulugan na walang dalawang linya ang may magkakaparehong Id_P. Kahit ang pangalan ng dalawang tao ay magkakapareho, ang Id_P ay makakahiwalay sila.

Sumunod na tingnan ang "Orders" talahanayan:

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1
5 34764 65

Paging higit sa "Id_O" kolumna ay ang pangunahing kalakhan ng Orders talahanayan, samantalang ang "Orders" talahanayan na "Id_P" kolumna ay ginagamit upang sumangguni sa "Persons" talahanayan ng mga tao na walang pangangailangan gamitin ang kanilang tunay na pangalan.

Makipag-注意力, ang "Id_P" na kolumna ang nag-uugnay sa dalawang talahanayan sa itaas.

Pagkilala Ng Dalawang Talahanayan

Maaari naming makuha ang datos mula sa dalawang talahanayan sa pamamagitan ng pagkilala ng dalawang talahanayan:

Sino ang nag-order ng produkto, at ano ang mga produkto na kanilang pinag-order?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons, Orders
WHERE Persons.Id_P = Orders.Id_P 

Hasilang Pagsusuri:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

SQL JOIN - Paggamit Ng Join

Hindi lamang sa paraan ng itaas, maaari rin namin gamitin ang keyword JOIN upang makuha ang datos mula sa dalawang talahanayan.

Kung gusto naming ilista ang mga pinag-order ng lahat ng tao, magamit ang sumusunod na SELECT statement:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.Id_P = Orders.Id_P
ORDER BY Persons.LastName

Hasilang Pagsusuri:

LastName FirstName OrderNo
Adams John 22456
Adams John 24562
Carter Thomas 77895
Carter Thomas 44678

Iba't ibang SQL JOIN

Hindi lamang ang INNER JOIN (pangloob na koneksyon) na ginamit namin sa mga halimbawa sa itaas, maaari rin namin gamitin ang iba pang uri ng koneksyon.

Nakalista sa ibaba ang mga uri ng JOIN na maaari mong gamitin, at ang pagkakaiba nito.

  • JOIN: Kapag may katugma sa isang talahanayan, ibabalik ang mga linya
  • LEFT JOIN: Kahit walang katugma sa kanan ng talahanayan, ibabalik ang lahat ng mga linya mula sa kaliwa ng talahanayan
  • RIGHT JOIN: Kahit walang katugma sa kaliwa ng talahanayan, ibabalik ang lahat ng mga linya mula sa kanan ng talahanayan
  • FULL JOIN: Kapag may katugma sa isa sa mga talahanayan, ibabalik ang mga linya