JOIN IN MYSQLI

zigi 01

JF-Expert Member
Joined
Oct 22, 2017
Posts
325
Reaction score
198
Naomba kueleweshwa vizuri wataalamu maana naona nimekariri ila sijaelewa vizuri kabisa hivi vitu
1.inner join
2.left join
3.right join
4.full join
Maana vinaniuniza kichwa sana
 
Ushindwe kuelewa lecture, google, MySQL documentation ndio uelewe hapa?

Tatizo ni lugha?
Labda ungeanza kumuuliza asipoelewa ni wapi.

Maana kuna mtu haelewi, halafu anaelewa asipoelewa ni wapi.

Halafu kuna mtu haelewi, halafu hata haelewi asipoelewa ni wapi.
 
Ushindwe kuelewa lecture, google, MySQL documentation ndio uelewe hapa?

Tatizo ni lugha?
Yer it's possible kama ulisoma vizuri hili unalijua linawezatokea usielewe lecture, google but ukaenda discussion na washikaji ukaelewa vizuri! My friend we differ in capacity and ability to capture but also the kind of lecturer!! Don't conclude even if you know where exactly problem is!!
 
Naomba kueleweshwa vizuri wataalamu maana naona nimekariri ila sijaelewa vizuri kabisa hivi vitu
1.inner join
2.left join
3.right join
4.full join
Maana vinaniuniza kichwa sana
Tuchukulie una Table mbili, 1 - Oda za wateja 2. Wateja
Table ya kwanza tuiite LEFT table, Table ya pili iwe Right table.

Kwa mfano unataka kupata records za order kutoka table ya kwanza (oda Left) na hiyo ilinunuliwa na mteja gani (table wateja right).

Maana yake utatumia SELECT statement kuchagua columns na ambayo itaunganisha table columns nadhani unafahamu hili.

1. inner join inaonyesha zile record(columns) ambazo zinafanana id tu kwenye hizo table mbili.

2. left join

kwa mfano unasema

Code:
SELECT Oda.namba_ya_order,mteja.jina_la_mteja FROM Oda LEFT JOIN wateja ON oda.order_id=mteja.order_id
Hii statement itafanya column namba_ya_order kwenye ya oda(left) kuonyesha records zote ikiwemo zile ambazo haziendani na condition oda.order_id=mteja.order_id

Kwenye column ya jina_la_mteja itaonyesha NULL zile records ambazo haziendani na condition oda.order_id=mteja.order_id

3. Right join ni kinyume cha left join, yaani table ya pili itaonyesha records zote na ile ya kwanza itaonyesha null kwa record ambazo hazitoendana na condition uliyoweka.

4. Full join hii inalist record zote ambazo umeselect toka kwenye table kama record haziendani basi row moja kati ya column mbili inakuwa empty lakini row zote za columns ulizochagua zitatokea
 
Nimekupata vizuri mkuu!!
 
Nimekupata vizuri mkuu!!
Ila
SELECT Oda.namba_ya_order,mteja.jina_la_mteja FROM Oda LEFT JOIN wateja ON oda.order_id=mteja.order_id

Hapa tuna link table ya right so why tunaandika FROM oda LEFT JOIN wateja?
Hapa ndio pananipa simtofahau maana tunaunganisha table ya kulia kwenye table ya kushoto ni kama zinakuja vice versa au mm ndio sielewi??
 
Hapo tunapotaja LEFT JOIN why tusi link left table? Halikadharika RIGHT JOIN why tusi link right table??
 
Hapana sio hivyo, yaani FROM oda LEFT JOIN, maana yake column za table ya oda ndio left, ambayo hii left table itaungana na baadhi ya items za right table.

Kwa hiyo hapo tumeionyesha table ya oda kuwa ni LEFT, ndio table ambayo items zote za columns uliochaguwa zitaonekana halafu hii ya kulia ndio baadhi zitaandika null.
 
Hapo tunapotaja LEFT JOIN why tusi link left table? Halikadharika RIGHT JOIN why tusi link right table??
Ngoja kwanza nikupe mfano.

Tunataka kupata taarifa za mahudhurio ya wanafunzi kwa siku ya leo ijumaa.

Tutengeneze table mbili.

1. Table ya majina ya wanafunzi.
2. Table ya mahudhurio.

Table ya wanafunzi iwe ni LEFT(First Table) na Table mahudhurio ya siku ya ijumaa iwe ni RIGHT(second Table).

Iwapo unataka kuona majina yote ya wanafunzi ambao wamehudhuria na wasiohudhuria siku ijumaa utalazimika ku-declare table ya kwanza (LEFT) ili ionyeshe majina yote. Kwa wanafunzi ambao hawajahuzuria siku ijumaa neno "NULL" litatokea kwnye column ya table ya pili ya mahudhurio.

Tukija kwenye swali lako.

Hapo nilikuwa nataka kuona orders zote toka kwenye LEFT table, kisha nikahitaji kujua order ipi ilichukuliwa na ipi ambayo haikuchukuliwa.

Kwa kuwa table ya oda ndio table yangu ya kwanza, nikaamua kuita kuwa ni LEFT JOIN ili nione order zote na kuona zipi zilichukuliwa na wateja ambao wapo kwenye table ya pili.

 
Nice explanation!! Nimeelewa sana nisipoelewa hapo nitakua na developmental problem!!
 
===
Kuwa fasaha zaidi:
1. Italeta records zote za oder including zile ambazo wateja wake hawajulikani
2. Italeta records zote za wateja pamoja na order zao... including wateja ambao hawana order zozote

3. itatoa order orderzote na wateja wote. zile zenye wateja zitaoneshwa. na wateja wasio na order wataoneshwa pia, na zile zenye wateja zitaoneswa...

Hope nimeweka sawa zaidi.
 
Dogo Programming huwezi Kujifunza kwa style hii ya kuuliza uliza random people na ukaelewa

Nenda w3schools au source yoyote ya reference unayoitumia
Pata concept,then test codes zako kulingana na ulivyoelewa mpaka zitakapofanya kazi

Ukishindwa hapo nenda Stack overflow ukaulize sio humu Jf
 
====
Mkuu unaonaje kama humu tunaweza kuanzisha forum kama hii kusaidia watu kwenye ICT? mimi ni specialist katika Database design, development na administration. Pia nimedeal na networking, business intelligence na data warehousing nakadhalika. Nawe pia unao ujuzi wako, na wengine pia. Tukiungana tunaweza kutoa faida sana kwa ndugu zetu kuliko kila siku kuongea siasa na mahusiano....
Unasemaje mkuu?
 
Hapo umekosea mkuu mtu akiuliza kitu sio hajui kabisa just kupata concept then unaendelea huko unakokusema tunapajua kote ni source of knowledge na humu pia ni sawa na huko!!
 
Exactly! Tusiichi kwa kukariri maisha
 
Hapo umekosea mkuu mtu akiuliza kitu sio hajui kabisa just kupata concept then unaendelea huko unakokusema tunapajua kote ni source of knowledge na humu pia ni sawa na huko!!
wala hajakosea, maswali unayouliza ni very basic ones, google au (Stack Overflow/Exchange, au w3schools ) ingekupa mwanga kwa haraka zaidi plus mifano mingimingi ya kufanya, kuliko kutupia hapa kusubiria 'random pipo' waje wajibu,naona unatumia nguvu nyingi sana kujifunza izo basics

ni mtazamo tu
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…