SQL JOIN QUERY

මම කියලා දෙන්න යන්නෙ SQL JOIN QUERY ගැන, මේගැන හොඳටම දන්න අයත් ඇති, නොදන්න අයත් අතිකියල හිතුන නිසයි මෙහෙම POST එකක් දාන්න හිතුනෙ.:cool: මේ පොස්ට් එකෙන් උබලට ගන්න දෙයක් තියේවි කියල විශ්වාස කරනවා.

SQL JOIN use වෙන්නෙ table දෙකක් හෝ ඊට වැඩි ගනනක rows එකට සම්බන්ද කිරීම සඳහායි.

එ කියන්නෙ අපි database එකක් හදනකොට අපිට අවශ්‍ය tables වෙන වෙනම තියාගන්නව Example එකක් විදිහට මෙහෙම හිතමු.


Orders Table

lVjrvLz.jpg


Customers Table

iI13UjG.jpg



අපට තියනව Orders කියල table එකක්, තව අපට තියනව Customers කියල table එකක්, ok දැන් අපට ඕනි Customers ල දාන Orders ටික හොයගන්ඩ.
එතකොට කොහොමද අපි එක හොය ගන්නෙ? මොකද Orders තියෙන්නෙ එක table එකක,
Customers ල ඉන්නෙ තව එකක,ඔන්න මේවගේ අවස්තා වලදි තමයි අපට SQL JOIN ඕනි වෙන්නෙ.

හරි දැන් වැඩේට බහිමු. :cool:

SQL INNER JOIN

INNER JOIN එක තමයි SQL වලදී වැඩිපුරම use වෙන්නෙ. මේ JOIN එක use කරල අපට පුලුවන් condition එක TRUE වෙන අවස්තවල table දෙකක හෝ ඊට වැඩි ගනනක ඇති සියලුම ROWS return කරගන්න.

ok ... තෙරුනේ නැති අයට මේ example එක බැලුවහම තේරෙයි.

Example එකක් විදිහට මේ sql query එක ගමු.


SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;


මඤ්ඤන් වගේද? :confused:
ok මම කියලදෙන්නම්. :)

මෙහෙමයි.
හොඳට බලන්ඩ Orders Table එක, ඒ Table එකේ තියනව CustomerID කියල column එකක්. මෙන්න මේ CustomerID කියන්නෙ Orders Table එකේ foreign key එක, ඒවගේම එක Customers Table එක primary key එක.


Orders Table

xcJC1Oz.jpg


Customers Table

HsarSY6.jpg


හරි ඔන්න එතකොට අපේ කොල්ලන්ට ගැටළුවක් එනවා මොන මගුලක්ද මේ primary key එක foreign key එක කියන්නෙ කියල. :baffled:

හරි ඉන්ඩකෝ එකත් කියල දෙන්ඩ... :cool:
මෙහෙමයි :growl:

PRIMARY KEY එක කියන්නෙ table එකක තියන ROWS uniquely identify කරගන්ඩ use කරන value එකක්. හරියට ඔයාගේ ID එකේ number එකවගේ ඒ number එක unique. හරි දැන් අනික. :)
FOREIGN KEY එක කියන්නෙ වෙනත් table එකක PRIMARY KEY එකක් කියන්ඩ පුළුවන්, හරියට මේවගේ මම ළඟ තියනව ඔයාගේ ID number එක, එකෙන් මට පුළුවන් වෙනවා ඔයාව අදුරගන්න. අපේ table දෙකට අනුවනම් Orders කියන table එකේ තියන CustomerID එකෙන් පුළුවන් ඊට අදාළ Customers table එකේ row එක හොයාගන්ඩ. හරි දැන් එ දෙකත් ok. :)

මම අයෙ පාඩමට එනව. අපි කියකියහිටියේ.. :nerd:

හොඳට බලන්ඩ Orders Table එක, ඒ Table එකේ තියනව CustomerID කියල column එකක්. මෙන්න මේ CustomerID කියන්නෙ Orders Table එකේ foreign key එක, ඒවගේම එක Customers Table එක primary key එක. එතකොට අපට පුළුවන් INNER JOIN එක බවිතකරලා Orders Table එකේ තියන CustomerID වලටත් Customers Table එකේ තියන CustomerID සමානවන records ටික ඔක්කොම return කරගන්ඩ.


අපේ query එකට අනුව මේවගේ result එකක්තමයි එන්නෙ. :yes:

Result

lVjrvLz.jpg



හරි සරලව ඕක තමයි SQL INNER JOIN කියන්නෙ.
SQL වල තවත් JOIN වර්ග කිහිපයක් තියනව එවතමයි..
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
ඒවා ගැනත් කියල දෙන්නම් දවසක.


එහෙනම් කස්ටියටම ජයවේවා.....!!
 
Last edited:

sajith.xp.pk

Well-known member
  • Nov 12, 2008
    5,957
    3,965
    113
    Sri Lanka
    මචං, මට කියල දියන්, Join Query එකක තියෙන Advantage එක මොකක්ද? අපිට මේ වැඩේ Join Query එකක් නැතුව කරන්න පුලුවන්නෙ. මම ඒක දන්නව.. ඒත් Join Query එක අන්ඩර දෙමල වගේ තිබුනෙ. දැන් නම් Shape මචං උඹ හින්ද.. ඒත් මේක ඔලුවට එල කිරි වගේ යන්න නම් මේකෙ වැදගත් කම දැනගන්න ඕන බන්.. මේක Speed ද නෝමල් විදියට වඩා? ඒ කිව්වෙ අපිට While අස්සෙ තව Query එකක් දාල Customer Details ගන්න පුළුවන්නෙ....
    reply karala pm ekakuth danna machan..
     

    sajith.xp.pk

    Well-known member
  • Nov 12, 2008
    5,957
    3,965
    113
    Sri Lanka
    ORM use karanna gattain passe oya hisarade honda una lol

    මචං ORM පාවිච්චි කරන්න ඉගෙන ගන්නත් ඕන.. පොඩ්ඩක් මේක පටන් ගන්න අඩිය තියන්න ඕන කොතනින්ද? පොඩි Tutorial එකක් දෙන්න පුළුවන්ද බන්...
     

    MihiCherub

    Well-known member
  • Sep 14, 2009
    18,849
    1
    9,594
    113
    Gampaha
    මචං ORM පාවිච්චි කරන්න ඉගෙන ගන්නත් ඕන.. පොඩ්ඩක් මේක පටන් ගන්න අඩිය තියන්න ඕන කොතනින්ද? පොඩි Tutorial එකක් දෙන්න පුළුවන්ද බන්...
    inner query/ sub query walata wada join query fast.. ita wada normal query fast.
     

    joshmiller

    Well-known member
  • Feb 23, 2014
    3,305
    220
    63
    pitarata
    මචං, මට කියල දියන්, Join Query එකක තියෙන Advantage එක මොකක්ද? අපිට මේ වැඩේ Join Query එකක් නැතුව කරන්න පුලුවන්නෙ. මම ඒක දන්නව.. ඒත් Join Query එක අන්ඩර දෙමල වගේ තිබුනෙ. දැන් නම් Shape මචං උඹ හින්ද.. ඒත් මේක ඔලුවට එල කිරි වගේ යන්න නම් මේකෙ වැදගත් කම දැනගන්න ඕන බන්.. මේක Speed ද නෝමල් විදියට වඩා? ඒ කිව්වෙ අපිට While අස්සෙ තව Query එකක් දාල Customer Details ගන්න පුළුවන්නෙ....
    reply karala pm ekakuth danna machan..

    Join Use karanne performance wadi karaganna machan , queries godak liyanawata wada meka lesiye ne ? , DB Load ekath wadi arahema liuwoth
     
    මචං, මට කියල දියන්, Join Query එකක තියෙන Advantage එක මොකක්ද?

    හරි Advantage එක ගැන මචන් මම පොස්ට් එකේ මුලදීම කතාකරල තියනවා.

    SQL JOIN use වෙන්නෙ table දෙකක් හෝ ඊට වැඩි ගනනක rows එකට සම්බන්ද කිරීම සඳහායි.

    මේ කෑල්ල පරිස්සමෙන් කියවපන්, වැදගත්ම දේ මෙතන කියල තියනවා,

    ඊටපස්සේ

    අපට තියනව Orders කියල table එකක්, තව අපට තියනව Customers කියල table එකක්, ok දැන් අපට ඕනි Customers ල දාන Orders ටික හොයගන්ඩ.
    එතකොට කොහොමද අපි එක හොය ගන්නෙ? මොකද Orders තියෙන්නෙ එක table එකක,
    Customers ල ඉන්නෙ තව එකක,ඔන්න මේවගේ අවස්තා වලදි තමයි අපට SQL JOIN ඕනි වෙන්නෙ.


    මම දාලතියන photos එක්ක ඔය ටික කියෙව්වොත් උබට query ගැන idea එකක් ගන්ඩ පුලුවන්වෙයි.
    හරි ඊළග,

    අපිට While අස්සෙ තව Query එකක් දාල Customer Details ගන්න පුළුවන්නෙ....


    While එකක් ඇතුලෙත් query කඩල ගහලත් මේ result එක ගන්ඩ පුළුවන්. එත් මචන් එහෙම ගහනකොට program එක ගොඩක් slow වෙනවා.
    මොකද query එක execute වෙන හැම වෙලාවකම program එක DB එක එක්ක සම්බන්ද වෙනවා. පොඩි program වලදී ලොකු slow එකක් නොපෙනුනාට, ටිකක් ලොකු program එකක් execute වෙනකොට program එක slow වෙනවා. එක query එකකින් එකපාර data ටික load කරන්ඩ පුළුවන්කම තියාගන query එක කඩල ගහන්ඩ නැහැ කියල හිතන්නේ.

    හරි එහෙනම් ජයවේව...!!