LEFT JOIN
සහ අතර ඇති වෙනස LEFT OUTER JOIN
කුමක්ද?
LEFT JOIN
සහ අතර ඇති වෙනස LEFT OUTER JOIN
කුමක්ද?
Answers:
ප්රලේඛනයට අනුව: FROM (Transact-SQL) :
<join_type> ::=
[ { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } [ <join_hint> ] ]
JOIN
මූල පදය OUTER
විකල්ප ලෙස සලකුණු කර ඇත (වර්ග වරහන් වල කොටා ඇත). මෙම විශේෂිත අවස්ථාවෙහිදී, ඔබ නියම OUTER
කළත් නැතත් කිසිදු වෙනසක් සිදු නොවේ. මෙම අනෙක් අංග වගන්තිය ද විකල්ප ලෙස ලකුණු කර ඇත එක්වන අතර, පිටත් බව සටහන ඔවුන් පෙන්වා ඇත වෙනසක්.
නිදසුනක් ලෙස, JOIN
වගන්තියේ සම්පූර්ණ වර්ගය-කොටස අත්යවශ්ය නොවේ, එවැනි අවස්ථාවකදී INNER
ඔබ සඳහන් කරන්නේ නම් පෙරනිමිය වේ JOIN
. වෙනත් වචන වලින් කිවහොත්, මෙය නීත්යානුකූල ය:
SELECT *
FROM A JOIN B ON A.X = B.Y
මෙන්න සමාන සින්ටැක්ස් ලැයිස්තුවක්:
A LEFT JOIN B A LEFT OUTER JOIN B
A RIGHT JOIN B A RIGHT OUTER JOIN B
A FULL JOIN B A FULL OUTER JOIN B
A INNER JOIN B A JOIN B
මෙම අනෙක් SO ප්රශ්නයට මා තැබූ පිළිතුරද බලන්න: SQL වමේ එක්වීම හා එදිරිව බහු වගු FROM රේඛාවෙන්? .
INNER JOIN
දකුණු හා JOIN
වම් පසින් සිටීම වඩා හොඳ නොවේද?
JOIN
ඇත.
ඔබේ ප්රශ්නයට පිළිතුරු දීමට LEFT JOIN සහ LEFT OUTER JOIN අතර වෙනසක් නැත, ඒවා හරියටම කියූ ආකාරයටම වේ ...
INNER JOIN - වගු දෙකේම තිබේ නම් දත්ත ලබා ගනී.
පිටත එක්වන ක ය 3 වර්ග:
LEFT OUTER JOIN
- වම් වගුවේ තිබේ නම් දත්ත ලබා ගනී.RIGHT OUTER JOIN
- නිවැරදි වගුවේ තිබේ නම් දත්ත ලබා ගනී.FULL OUTER JOIN
- වගු දෙකෙන් එකක් හෝ තිබේ නම් දත්ත ලබා ගනී.CROSS JOIN , නමට අනුව, එය [n X m]
සෑම දෙයකටම සම්බන්ධ වේ.
සම්බන්ධ වීමට අපි වගු ලැයිස්තුගත කර ඇති තත්වයට සමානය ( ප්රකාශයේ FROM
වගන්තියේ SELECT
), ඒවා වෙන් කිරීමට කොමාව භාවිතා කරයි.
සැලකිල්ලට ගත යුතු කරුණු:
JOIN
පෙරනිමියෙන් එය a INNER JOIN
.OUTER
එක්වන විය යුතුය LEFT
| RIGHT
| FULL
ඔබට සරලව කිව නොහැක OUTER JOIN
.OUTER
යතුරුපදය අතහැර දමා කියන්න LEFT JOIN
හෝ RIGHT JOIN
හෝ කළ FULL JOIN
හැකිය.වඩා හොඳ ආකාරයකින් මේවා දෘශ්යමාන කිරීමට කැමති අය සඳහා කරුණාකර මෙම සබැඳිය වෙත යන්න: SQL සම්බන්ධතාවයේ දෘශ්ය පැහැදිලි කිරීමක්
CROSS JOIN
සමාන FULL JOIN
?
Cross Join
සහ Full Outer Join
යම් ආකාරයකින් ... සමාන බව පෙනේ.
වම් බැඳීම සහ වම් පිටත බැඳීම අතර වෙනස කුමක්ද?
කිසිවක් නැත . LEFT JOIN
සහ LEFT OUTER JOIN
සමාන වේ.
OUTER
විකල්පයක් වීමට හේතුව පිළිබඳව ඔබ සඳහනක් හෝ පැහැදිලි කිරීමක් එකතු කළහොත් හොඳයි .
මම PostgreSQL DBA ය, පිටත හෝ පිටත සම්බන්ධ වීමේ වෙනස මට තේරුම් ගත හැකි තාක් දුරට අන්තර්ජාලය පුරා සැලකිය යුතු සාකච්ඡාවක් ඇති මාතෘකාවකි. අද වන තුරු මම ඒ දෙක අතර වෙනසක් දුටුවේ නැත. ඒ නිසා මම තව දුරටත් ගොස් ඒවා අතර වෙනස සොයා ගැනීමට උත්සාහ කරමි. අවසානයේදී මම ඒ පිළිබඳ සම්පූර්ණ ලියකියවිලි කියවා මේ සඳහා පිළිතුර සොයා ගතිමි.
එබැවින් ඔබ ප්රලේඛනය දෙස බැලුවහොත් (අවම වශයෙන් PostgreSQL හි) ඔබට මෙම වාක්ය ඛණ්ඩය සොයාගත හැකිය:
වෙනත් වචන වලින් කිවහොත්,
LEFT JOIN
සහ LEFT OUTER JOIN
එකම ය
RIGHT JOIN
සහ RIGHT OUTER JOIN
එකම ය
එය තවමත් පිළිතුර සොයා ගැනීමට උත්සාහ කරන අයට එය දායකත්වයක් වනු ඇතැයි මම බලාපොරොත්තු වෙමි.
Left Join
හා Left Outer Join
එක් හා ය ම . පළමුවැන්න දෙවැන්න සඳහා වූ කෙටිමං ය. සම්බන්ධතාවය Right Join
හා Right Outer Join
සම්බන්ධතාවය ගැන ද එයම කිව හැකිය . නිරූපණය සමානාත්මතාවය විදහා දක්වනු ඇත. එක් එක් විමසුම සඳහා ක්රියාකාරී උදාහරණ SQL Fiddle හරහා ලබා දී ඇත . මෙම මෙවලම විමසුම හැසිරවීමට අත තබයි.
ලබා දී ඇත
වම් සම්බන්ධ වීම සහ වම් පිටත සම්බන්ධ වීම
ප්රතිපල
දකුණට එක්වන්න සහ දකුණු පිටත එක්වන්න
ප්රතිපල
පහත දැක්වෙන අනුපිළිවෙලට බැඳීම ගැන සිතීම මට පහසු ය:
මම මෙම (සාපේක්ෂව) සරල ආකෘතිය හදුනා ගන්නා තෙක්, JOINS සෑම විටම කළු කලාවකට වඩා ටිකක් වැඩිය. දැන් ඔවුන් පරිපූර්ණ අර්ථයක් ලබා ගනී.
මෙය ව්යාකූලත්වයට වඩා වැඩි යමක් උපකාරී වේ යැයි සිතමු.
LEFT / RIGHT සහ LEFT OUTER / RIGHT OUTER එක සමාන වන්නේ ඇයි? මෙම වචන මාලාව එයට හේතුව පැහැදිලි කරමු. LEFT සහ RIGHT සම්බන්ධ වීම OUTER සම්බන්ධ වීමේ විශේෂිත අවස්ථා බව තේරුම් ගන්න, එබැවින් OUTER LEFT / OUTER RIGHT හැර වෙන කිසිවක් විය නොහැක. OUTER සම්බන්ධතාවයේ අර්ධ ප්රති results ල වන LEFT සහ RIGHT බැඳීම් වලට වඩා OUTER බැඳීම FULL OUTER ලෙසද හැඳින්වේ . ඇත්ත වශයෙන්ම:
Table A | Table B Table A | Table B Table A | Table B Table A | Table B
1 | 5 1 | 1 1 | 1 1 | 1
2 | 1 2 | 2 2 | 2 2 | 2
3 | 6 3 | null 3 | null - | -
4 | 2 4 | null 4 | null - | -
null | 5 - | - null | 5
null | 6 - | - null | 6
OUTER JOIN (FULL) LEFT OUTER (partial) RIGHT OUTER (partial)
එම මෙහෙයුම් වලට අන්වර්ථයන් ඇත්තේ මන්දැයි දැන් පැහැදිලි ය, එසේම අවස්ථා 3 ක් පමණක් පවතින බව පැහැදිලිය: INNER, OUTER, CROSS. OUTER සඳහා උප අවස්ථා දෙකක් සමඟ. වාග් මාලාව, ගුරුවරුන් මෙය පැහැදිලි කරන ආකාරය මෙන්ම ඉහත පිළිතුරු සමහරක් බොහෝ විට විවිධ ආකාරයේ බැඳීම් ඇති බව පෙනේ. නමුත් එය ඇත්තෙන්ම ඉතා සරල ය.
JOIN
ඇඟවුම් කරන්නේ INNER JOIN
” කෙසේද යන්න ඔබට පැහැදිලි කළ හැකිද?
ඔබේ ප්රශ්නයට පිළිතුරු දීමට
SQL සේවාදායකය සින්ටැක්ස් සමඟ සම්බන්ධ වන විට OUTER අත්යවශ්ය නොවේ
එය msdn ලිපියේ සඳහන් වේ: https://msdn.microsoft.com/en-us/library/ms177634(v=sql.130).aspx
ඒ නිසා පහත ලැයිස්තුවෙහි දැක්වේ ඇති සහ නැති සමාන syntaxes එක්වන පිටත
LEFT OUTER JOIN => LEFT JOIN
RIGHT OUTER JOIN => RIGHT JOIN
FULL OUTER JOIN => FULL JOIN
වෙනත් සමාන සින්ටැක්ස්
INNER JOIN => JOIN
CROSS JOIN => ,
ඩොට්නෙට් මොබ් කලා කෘතිය දැඩි ලෙස නිර්දේශ කරන්න: SQL සේවාදායකයට සම්බන්ධ වේ
ඇ) පිටත බැඳීම:
There are three type of outer join
1) Left Outer Join = Left Join
2) Right Outer Join = Right Join
3) Full Outer Join = Full Join
එය උදව් වේ යැයි සිතමි.
ප්රධාන වශයෙන් JOIN වර්ග තුනක් තිබේ
පිටත: වර්ග තුනකින් යුක්ත වේ
හරස් බැඳීම: සෑම දෙයකටම සම්බන්ධ වේ
සින්ටැක්ටික් සීනි, අනියම් පා er කයාට සම්බන්ධ වීම අභ්යන්තර එකක් නොවන බව වඩාත් පැහැදිලි කරයි.
මෙම ප්රශ්නයේ සන්දර්භය තුළ, මට 'APPLY' ක්රියාකරුවන් 2 ද පළ කිරීමට අවශ්යයි:
බැඳීම් :
INNER JOIN = එක්වන්න
පිටත එක්වන්න
වම් පිටත බැඳීම = වමට සම්බන්ධ වන්න
නිවැරදි පිටත බැඳීම = නිවැරදි බැඳීම
සම්පූර්ණ පිටත බැඳීම = පූර්ණ සම්බන්ධ වීම
CROSS JOIN
ස්වයං-සම්බන්ධ වීම : මෙය හරියටම වෙනම ආකාරයේ සම්බන්ධතාවයක් නොවේ. මෙය මූලික වශයෙන් ඉහත එක් සම්බන්ධතාවයක් භාවිතා කරමින් වගුවකට සම්බන්ධ වේ. SQL සංවර්ධක ප්රජාවේ බොහෝ දෙනෙකුගෙන් මෙම පදය ඔබට ඇසෙනු ඇති බැවින් සන්දර්භය තුළ සාකච්ඡාවලට සම්බන්ධ වීම වටී යැයි මට හැඟුණි.
අයදුම් කරන්න :
https://www.mssqltips.com/sqlservertip/1958/sql-server-cross-apply-and-outer-apply/
https://sqlhints.com/2016/10/23/outer-apply-in-sql-server/
සැබෑ ජීවිත උදාහරණය, SQL හි OUTER / CROSS APPLY භාවිතා කළ යුත්තේ කවදාද?
උප ගණනය කිරීමකදී එකම ගණනය කිරීමක් කිරීමට වඩා හොඳ කාර්ය සාධනයක් ලබා දෙන බැවින් APPLY ක්රියාකරු ඉතා ප්රයෝජනවත් බව මට පෙනේ. ඒවා SQL සේවාදායකයේ පැරණි අනුවාදවල බොහෝ විශ්ලේෂණ කාර්යයන් ප්රතිස්ථාපනය කරයි. JOINS සමඟ සැපපහසු වූ පසු, එක් SQL සංවර්ධකයෙකු ඊළඟට APPLY ක්රියාකරුවන් ඉගෙන ගැනීමට උත්සාහ කළ යුතු යැයි මා විශ්වාස කරන්නේ එබැවිනි.
OUTER
මූල පදය විකල්ප වේ.