7 JOIN

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

 

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

 

 

 

 

 

 

 

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

6.1 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;

6.2 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;

 

6.3 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;

 

 

6.4 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;

 

 

 

 

License

Share This Book

Feedback/Errata

Leave a Reply

Your email address will not be published. Required fields are marked *