இரண்டு வெவ்வேறு 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;