Advanced MySQL – Joins

JOIN

 

இரண்டு வெவ்வேறு table- ல் இருக்கும் ஒரு பொதுவான column- ஐப் பயன்படுத்தி அவற்றை இணைத்து , அதன்பின் இரண்டிலிருந்தும் தகவல்களைப் பெறுவதற்கு JOIN பயன்படுகிறது .

 

இதனை Inner Join, Outer Join, Cross Join என்று மூன்று வகையாகப் பிரிக்கலாம் . Outer Join- ஐ left outer, right outer என்று இரண்டு வகையாகப் பிரிக்கலாம் . இவை எவ்வாறு இணைந்து தகவல்களை வெளிப்படுத்துகின்றன என்பதைப் பின்வரும் படத்தின் மூலம் புரிந்து கொள்ளலாம் .

 

ITEmployees, ITDepartment எனும் tables- ல் உள்ள தகவல்களைப் பின்வரும் படத்தில் காணலாம் . பின்னர் இவை எவ்வாறு இணைந்து தகவல்களை வெளிப்படுத்துகின்றன என்பதை ஒவ்வொன்றாகப் பார்க்கலாம் .

Inner Join

 

Query-49

 

இதில் INNER JOIN என்பது இணைப்பிற்காக நாம் பயன்படுத்தியிருக்கும் பொதுவான column- ன் மதிப்பு இரண்டு table- களிலும் ஒன்றாக இருந்தால் மட்டுமே தகவல்களை வெளிப்படுத்தும் . இதனை Equi Join எனவும் அழைக்கலாம் .

select * from ITEmployees e inner join ITDepartment d on e.dept_id=d.dept_id;

Outer Join

இதனை Left Outer, Right Outer, Full Outer என்று மூன்று வகையாகப் பிரிக்கலாம் .

Query-50

 

LEFT OUTER JOIN என்பது இடப்பக்கம் இருக்கும் table- லிருந்து அனைத்து தகவல்களையும் வெளிப்படுத்தும் . பின்னர் இணைப்பிற்காக நாம் பயன்படுத்தியிருக்கும் பொதுவான column- ன் மதிப்பு , வலப்பக்கத்து மதிப்புடன் ஒத்துப் போனால் மட்டுமே வலப்பக்கத்திலிருந்து தகவல்களை எடுத்து வெளிப்படுத்தும் . அப்படி இல்லையென்றால் Null மதிப்பினை வெளிப்படுத்தும் .

select * from ITEmployees e left outer join ITDepartment d on e.dept_id=d.dept_id;

 

 

 

 

 

 

 

 

 

 

 

Query-51

RIGHT OUTER JOIN என்பது வலப்பக்கம் இருக்கும் table- லிருந்து அனைத்து தகவல்களையும் வெளிப்படுத்தும் . பின்னர் இணைப்பிற்காக நாம் பயன்படுத்தியிருக்கும் பொதுவான column- ன் மதிப்பு , இடப்பக்கத்து மதிப்புடன் ஒத்துப் போனால் மட்டுமே இடப்பக்கத்திலிருந்து தகவல்களை எடுத்து வெளிப்படுத்தும் . அப்படி இல்லையென்றால் Null மதிப்பினை வெளிப்படுத்தும் .

select * from ITEmployees e right outer join ITDepartment d on e.dept_id=d.dept_id;

 

 

 

 

 

 

 

 

 

 

 

Query-52

FULL OUTER JOIN என்பது இடப்பக்கத்து மதிப்புகளை வெளிப்படுத்திய பின்னர் , வலப்பக்கத்து மதிப்புடன் ஒத்துப் போகவில்லையென்றால் Null மதிப்பினையும் அவ்வாறே , வலப்பக்கத்து மதிப்புகளை வெளிப்படுத்திய பின்னர் , இடப்பக்கத்து மதிப்புடன் ஒத்துப் போகவில்லையென்றால் Null மதிப்பினையும் வெளிப்படுத்தும் .

 

Mysql- ல் FULL OUTER JOIN எனும் keyword கிடையாது . ஏனெனில் LEFT OUTER மற்றும் RIGHT OUTER இரண்டும் சேர்ந்து நடைபெறுவது தான் FULL OUTER. ஆகவே அவை இரண்டையும் UNION செய்வதன் மூலம் நாம் full outer- ஐ நிகழ்த்திவிடலாம் . (UNION – ஐப் பற்றி நாம் set operators- ல் விரிவாகக் காண்போம் )

 

select * from ITEmployees e left outer join ITDepartment d on e.dept_id=d.dept_id union select * from ITEmployees e right outer join ITDepartment d on e.dept_id=d.dept_id;

 

Self Join

Query-53

 

ஒரே ஒரு table- ன் இரண்டு instance இணைக்கப்பட்டு , அதிலிருந்து தகவல்களைப் பெறுவது self join எனப்படும் .

select s1.Emp_id,s1.emp_name from selfie s1 join selfie s2 where s1.Emp_ID=s2.Manager_ID;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Cartesian Join / Cross Join

 

Cartesian Join அல்லது Cross Join என்பது மிகவும் அரிதாகப் பயன்படக் கூடிய ஒன்று . ஏனெனில் முதல் table- ல் 8 வரிகள் , இரண்டாவது table- ல் 8 வரிகள் உள்ளதெனில் , இவ்விரண்டையும் இணைத்து நாம் தகவல்களைப் பெரும் போது அது 64 வரிகளை வெளிப்படுத்தும் . அதாவது முதல் table- ல் உள்ள 8 வரிகளும் , இரண்டாவது table- ல் உள்ள முதல் வரியுடன் இணைந்து வெளிப்படும் . பின்னர் மீண்டும் முதல் table- ல் உள்ள 8 வரிகளும் , இரண்டாவது table- ல் உள்ள இரண்டாவது வரியுடன் இணைந்து வெளிப்படும் . அவ்வாறே ஒவ்வொரு முறையும் நிகழ்ந்து மிகப் பெரிய எண்ணிக்கையில் தகவல்களை வெளிப்படுத்தும் .

 

Query-54

select * from ITEmployees,ITDepartment;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

—-

 

து. நித்யா

இவர் cognizant நிறுவனத்தில் Data Warehouse Testing-ல் பணியாற்றி வருகிறார்.

மின்னஞ்சல் : nithyadurai87@gmail.com

வலை : nithyashrinivasan.wordpress.com

%d bloggers like this: