Inner Joint Outer Joint
Ang Inner join at Outer join ay dalawa sa mga pamamaraan ng SQL joining na ginagamit sa pagproseso ng query para sa mga database. Nabibilang sila sa pamilya ng mga sugnay na pinagsama (ang dalawa pa ay Kaliwa at Kanan na Pagsasama). Gayunpaman, mayroong Self Join na maaaring magamit para sa mga espesyal na sitwasyon. Ang layunin ng Join ay upang pagsamahin ang mga field gamit ang mga karaniwang value sa dalawang table. Pinagsasama ng mga pagsasamang ito ang mga talaan mula sa maraming talahanayan sa isang database. Lumilikha ito ng mga resultang set, na maaaring i-save bilang isa pang talahanayan.
Ano ang Inner Join?
Ang pinakakaraniwang ginagamit na operasyon ng SQL Join ay ang Inner Join. Maaari itong ituring bilang default na uri ng pagsali na ginagamit sa mga application. Inner join gamitin ang join-predicate para pagsamahin ang dalawang table. Ipagpalagay na ang dalawang talahanayan ay A at B, pagkatapos ay ang pagsasama-samang panaguri ay maghahambing ng mga hilera ng A at B upang malaman ang lahat ng mga pares na tumutugon sa panaguri. Ang mga halaga ng column ng lahat ng nasisiyahang hilera ng A at B na mga talahanayan ay pinagsama upang lumikha ng resulta. Maaari itong tingnan bilang unang pagkuha ng cross join (Cartesian product) ng lahat ng mga tala at pagkatapos ay ibinabalik lamang ang mga tala na nakakatugon sa join-predicate. Gayunpaman, sa katotohanan, ang produkto ng Cartesian ay hindi kinakalkula dahil ito ay napaka hindi epektibo. Sa halip, ginagamit ang hash join o sort-merge.
Ano ang Outer Join?
Hindi tulad ng, Inner join, ang outer join ay nagpapanatili ng lahat ng record kahit na hindi ito makahanap ng katugmang record. Nangangahulugan iyon na ang panlabas na pagsali ay nangangailangan ng isang tala upang makahanap ng isang katugmang tala para ito ay lumitaw sa resulta. Sa halip, ibabalik nito ang lahat ng mga talaan, ngunit ang mga walang kaparis na talaan ay magkakaroon ng mga null na halaga. Ang mga panlabas na pagsali ay nahahati sa tatlong sub kategorya. Ang mga ito ay kaliwang panlabas na pagdugtong, kanang panlabas na pagdugtong at buong panlabas na pagdugtong. Nakabatay ang pagkakaibang ito sa kung aling hilera ng talahanayan (kaliwang talahanayan, kanang talahanayan o parehong talahanayan) ang pananatili kapag may nakitang mga hindi katugmang talaan. Ang mga left outer joins (kilala rin bilang simpleng left join) ay nagpapanatili ng lahat ng record ng kaliwang table. Ibig sabihin, kahit na zero ang mga record na tumutugma sa numero, magkakaroon pa rin ito ng mga tala sa talahanayan ng resulta, ngunit magkakaroon ng mga null value para sa lahat ng column ng B. Sa madaling salita, ibinabalik ang lahat ng value mula sa kaliwang talahanayan na may mga katumbas na value mula sa kanan talahanayan (o mga null na halaga kapag hindi tugma). Kung ang mga halaga mula sa maraming row mula sa kaliwang talahanayan ay itinugma sa isang row mula sa kanang talahanayan, ang row mula sa kanang talahanayan ay uulitin kung kinakailangan. Ang kanang panlabas na pagsali ay halos katulad ng kaliwang panlabas na pagsali, ngunit ang paggamot sa mga talahanayan ay iginagalang. Nangangahulugan iyon na ang resulta ay magkakaroon ng lahat ng mga hilera ng kanang talahanayan nang hindi bababa sa isang beses na may katugmang kaliwang halaga ng talahanayan (at mga null na halaga para sa hindi magkatugma na mga tamang halaga). Ang buong panlabas na pagsali ay mas komprehensibo kaysa sa kaliwa at kanang panlabas na pagsasama. Nagreresulta ito sa pagsasama-sama ng epekto ng paglalapat ng parehong kaliwa at kanang panlabas na pinagsama.
Ano ang pagkakaiba ng Inner Join at Outer Join?
Ang Inner Join ay hindi nagpapanatili ng hindi magkatugmang mga row sa resulta, ngunit ang panlabas na pagsasama ay pananatilihin ang lahat ng mga tala mula sa hindi bababa sa isang talahanayan (depende sa kung aling panlabas na pagsasama ang ginamit). Kaya, hindi kanais-nais ang pag-uugali ng pagkakaroon ng walang impormasyon sa mga hindi magkatugmang row sa talahanayan ng resulta, kailangan mong palaging gumamit ng isa sa mga panlabas na pagsali (kapalit ng panloob na pagsasama). Maaaring hindi makagawa ng resulta ang panloob na pagsali kung walang makikitang mga tugma. Ngunit ang panlabas na pagsasama ay palaging magbubunga ng isang resultang talahanayan, kahit na walang katugmang mga hilera. Ang panloob na pagsali ay palaging magbabalik ng mga talahanayan na may mga halaga (kung ibinalik). Ngunit ang mga panlabas na pagsasama ay maaaring magresulta sa mga talahanayan na may mga null value.