SQL JOIN
- Ilang Bago ALIASES NG SQL
- Ilang Lagi INNER JOIN Ng SQL
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
- Ilang Bago ALIASES NG SQL
- Ilang Lagi INNER JOIN Ng SQL