Kompjuters, Ipprogrammar
Xellug jissieħbu (SQL) - eżempju, id-deskrizzjoni dettaljata, l-użu ta 'l-iżball
Fi kwalunkwe database relazzjonali reali, l-informazzjoni kollha hija mqassma fuq mejda separata. Ħafna mill-tabelli huma stabbiliti fl-iskema komunikazzjoni ma 'xulxin. Madankollu, bl-għajnuna ta SQL mistoqsijiet huwa kompletament possibbli li tpoġġi link bejn id-data, mhux integrati fiċ-ċirkwit. Dan isir billi jwettqu jissieħbu konnessjoni, li tippermetti li inti tibni relazzjoni bejn kwalunkwe numru ta 'tabelli, u anki jgħaqqdu l-informazzjoni apparentement diverġenti.
Dan l-artikolu se jitkellmu speċifikament dwar il-barra xellug jissieħbu. Qabel ma tipproċedi għad-deskrizzjoni ta 'dan it-tip ta' konnessjoni, żid f'xi tabelli database.
Tħejjija għall-tabelli meħtieġa
Per eżempju, fid-database tagħna, hemm informazzjoni dwar in-nies u proprjetà immobbli tagħhom. Sommarju bażat fuq it-tliet tabelli: Peoples (persuni), Realty (proprjetà immobbli), Realty_peoples (relazzjonijiet mejda, nies li minn liema proprjetà jappartjeni għal). Assumi-data li ġejja maħżuna fit-tabelli tal-poplu:
popli | ||||
id | L_name | F_name | Middle_name | birthday |
1 | Ivanova | Daria | B. | 2000/07/16 |
2 | pugin | Vladislav | Nikolaevich | 1986/01/29 |
3 | Evgenin | Alexander | Federovich | 1964/04/30 |
4 | Annina | imħabba | P. | 1989/12/31 |
5 | Gerasimovsky | tama | P. | 1992/03/14 |
6 | Gerasimovsky | Oleg | Albertovich | 1985/01/29 |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 |
8 | Sukhanovskaya | Julia | Y. | 2001/01/10 |
Proprjetà immobbli:
Realty | |
id | indirizz |
1 | Arkhangelsk, ul. Voronin, d. 7, kv.6 |
2 | Arkhangelsk, ul. Severodvinskaya, d. 84, q. 9 BR. 5 |
3 | reġjun Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
4 | reġjun Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
5 | Arkhangelsk, pl. Terekhina, d. 89, q. 13 |
Relazzjonijiet nies - proprjetà:
Realty_peoples | ||
id_peoples | id_realty | tip |
7 | 3 | sjieda konġunta Totali |
8 | 3 | sjieda konġunta Totali |
3 | 5 | proprjetà |
7 | 1 | proprjetà |
5 | 4 | partijiet komuni |
6 | 4 | partijiet komuni |
Xellug jissieħbu (SQL) - Deskrizzjoni
kompost Xellug għandha l-sintassi li ġej:
Table_A XELLUG JOIN table_B [{FUQ relattivi} | {JUŻA spisok_ ma tolbtsov}] |
U b'mod skematiku kif ġej:
U din l-espressjoni hija tradotta bħala "Select All, mingħajr eċċezzjoni, linja tat-Tabella A u Tabella B li juru biss l-ringieli tqabbil ta 'l-relattivi. Jekk it-tabella nstab fit-tabella sekwenza għall-pari A, imbagħad timla l-kolonni li jirriżultaw Null - valuri ".
Ħafna drabi, meta l-konnessjoni xellug huwa indikat FUQ, bl-użu tintuża biss meta l-ismijiet kolonna, li huwa ppjanat li jagħmlu l-konnessjoni huma l-istess.
jissieħbu Xellug - eżempji ta 'użu
Mal-konnessjoni ta 'l-xellug nistgħu naraw, il-poplu kollu mil-lista jekk ikun hemm Popli proprjetà. Biex tagħmel dan fil-xellug jingħaqdu eżempju mistoqsija sql:
Popli TAGĦŻEL. *, Realty_peoples.id_realty, Realty_peoples.type MILL Popli XELLUG JOIN Realty_peoples FUQ Peoples.id = Realty_peoples.id_peoples; |
Bir-riżultati li ġejjin:
Query1 | ||||||
id | L_name | F_name | Middle_name | birthday | id_realty | tip |
1 | Ivanova | Daria | B. | 2000/07/16 | ||
2 | pugin | Vladislav | Nikolaevich | 1986/01/29 | ||
3 | Evgenin | Alexander | Federovich | 1964/04/30 | 5 | proprjetà |
4 | Annina | imħabba | P. | 1989/12/31 | ||
5 | Gerasimovsky | tama | P. | 1992/03/14 | 4 | partijiet komuni |
6 | Gerasimovsky | Oleg | Albertovich | 1985/01/29 | 4 | partijiet komuni |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 | 1 | proprjetà |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 | 3 | sjieda konġunta Totali |
8 | Sukhanovskaya | Julia | Y. | 2001/01/10 | 3 | sjieda konġunta Totali |
Kif naraw, Ivanova Darya pugin Vladislav u Anninoy Lyubovi Nru reġistrati drittijiet tal-proprjetà immobbli.
U dak li aħna rċevejna, bl-użu ta 'ġewwa jissieħbu ġewwa jissieħbu? Kif tafu, dan jeskludi ringieli li ma jaqblux, hekk tlieta minn kampjun finali tagħna sempliċiment jitwaqqa:
Query1 | ||||||
id | L_name | F_name | Middle_name | birthday | id_realty | tip |
3 | Evgenin | Alexander | Federovich | 1964/04/30 | 5 | proprjetà |
5 | Gerasimovsky | tama | P. | 1992/03/14 | 4 | partijiet komuni |
6 | Gerasimovsky | Oleg | Albertovich | 1985/01/29 | 4 | partijiet komuni |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 | 1 | proprjetà |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 | 3 | sjieda konġunta Totali |
8 | Sukhanovskaya | Julia | Y. | 2001/01/10 | 3 | sjieda konġunta Totali |
Jidher li t-tieni verżjoni jissodisfa wkoll il-kundizzjonijiet tal-problema tagħna. Madankollu, jekk aħna jibdew jagħtu fuq ieħor, u ieħor tabella, tliet persuni mill-riżultat diġà irrimedjabbilment marret. Għalhekk, fil-prattika, meta tgħaqqad tabelli multipli ħafna aktar spiss użati Xellug u Dritt konnessjoni minn ġewwa jissieħbu.
Se tkompli tfittex lejn ix-xellug jissieħbu eżempji sql. Waħħal tabella bl-indirizzi ta 'djar tagħna:
Popli TAGĦŻEL. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address MILL Popli XELLUG JOIN Realty_peoples FUQ Peoples.id = Realty_peoples.id_peoples XELLUG JOIN Realty FUQ Realty.id = Realty_peoples.id_realty |
Issa irridu jiksbu mhux biss tip ta 'liġi, iżda wkoll l-indirizz ta' proprjetà immobbli:
Query1 | |||||||
id | L_name | F_name | Middle_name | birthday | id_realty | tip | indirizz |
1 | Ivanova | Daria | B. | 2000/07/16 | |||
2 | pugin | Vladislav | Nikolaevich | 1986/01/29 | |||
3 | Evgenin | Alexander | Federovich | 1964/04/30 | 5 | proprjetà | Arkhangelsk, pl. Terekhina, d. 89, q. 13 |
4 | Annina | imħabba | P. | 1989/12/31 | |||
5 | Gerasimovsky | tama | P. | 1992/03/14 | 4 | partijiet komuni | reġjun Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
6 | Gerasimovsky | Oleg | Albertovich | 1985/01/29 | 4 | partijiet komuni | reġjun Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 | 3 | sjieda konġunta Totali | reġjun Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 | 1 | proprjetà | Arkhangelsk, ul. Voronin, d. 7, kv.6 |
8 | Sukhanovskaya | Julia | Y. | 2001/01/10 | 3 | sjieda konġunta Totali |
reġjun Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
jissieħbu Xellug - l-użu tipiku ta 'żball: tabella proċedura invalida
żbalji bażiċi li saru fil-barra tax-xellug jissieħbu tabelli, tnejn:
- Korrett magħżula l-ordni ta 'tabelli li għalih data kienet mitlufa.
- Fejn l-iżbalji meta jużaw query bil jissieħbu tabelli.
Ikkunsidra l-ewwel żball. Qabel id-deċiżjoni ta 'kwalunkwe problema għandha tinftiehem b'mod ċar li dak li aħna rridu nġibu fl-aħħar. F'dan l-eżempju ta 'hawn fuq, ħadna kull wieħed mill-persuni, iżda kompletament tilfu l-informazzjoni dwar l-oġġett taħt in-numru 2, li l-proprjetarju ma nstabx.
Jekk aħna mċaqalqa-tabelli fil-mistoqsija f'xi postijiet, u jibdew bl «... Mill Realty xellug jissieħbu Popli ...» kwalunkwe proprjetà waħda, aħna ma tilfu, inti mhux ser jgħidlek dwar nies.
Imma ma jkun frightened tal-konnessjoni tax-xellug, jaqilbu għal full esterna, li hija inkluża fir-riżultati u t-tqabbil, u mhux il-linji tqabbil.
Wara kollox, il-volum tal-kampjun huwa ta 'spiss kbar ħafna, u data addizzjonali huwa attwalment inutli. Il-ħaġa prinċipali - li ċifra barra dak li trid li tikseb riżultat: tan-nies kollha ma 'lista ta' proprjetà disponibbli tagħhom jew il-lista propjetà kollha mal-proprjetarji tagħhom (jekk ikun hemm).
jissieħbu Xellug - l-użu tipiku ta 'żball: Talba hija korretta meta jistabbilixxu l-kundizzjonijiet fil-Fejn
It-tieni żball hija wkoll assoċjata ma 'telf ta' data, u mhux dejjem immedjatament apparenti.
Ejja ħa mmorru lura għall-mistoqsija meta aħna xellug permezz ta 'konnessjonijiet rċeviet dejta għall-persuni kollha u l-proprjetà eżistenti tagħhom. Ftakar dan li ġej fir xellug jingħaqdu eżempju sql:
MILL Popli XELLUG JOIN Realty_peoples FUQ Peoples.id = Realty_peoples.id_peoples; |
Ejja ngħidu li rridu biex tiċċara t-talba u ma output id-data, fejn it-tip ta 'liġi - "Proprjetà". Jekk aħna sempliċiment tehmeż, jużaw xellug jissieħbu sql, eżempju tal-kundizzjoni li ġejja:
...
Fejn it-tip <> "Proprjetà" |
aħna se jitilfu d-dejta dwar persuni li m'għandhom ebda proprjetà, minħabba li l-Null valur null mhuwiex mqabbla kif ġej:
Query1 | ||||||
id | L_name | F_name | Middle_name | birthday | id_realty | tip |
5 | Gerasimovsky | tama | P. | 1992/03/14 | 4 | partijiet komuni |
6 | Gerasimovsky | Oleg | Albertovich | 1985/01/29 | 4 | partijiet komuni |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 | 3 | sjieda konġunta Totali |
8 | Sukhanovskaya | Julia | Y. | 2001/01/10 | 3 | sjieda konġunta Totali |
Evita l-iżbalji milli jseħħu għal din ir-raġuni, huwa aħjar li jiġu stabbiliti l-kundizzjoni għażla immedjatament malli konnessjoni. Nissuġġerixxu li jikkunsidraw dan li ġej mal-xellug jissieħbu eżempju sql.
Popli TAGĦŻEL. *, Realty_peoples.id_realty, Realty_peoples.type MILL Popli XELLUG JOIN Realty_peoples FUQ (Peoples.id = Realty_peoples.id_peoples U tip <> "Proprjetà") |
Ir-riżultat se jkun kif ġej:
Query1 | ||||||
id | L_name | F_name | Middle_name | birthday | id_realty | tip |
1 | Ivanova | Daria | B. | 2000/07/16 | ||
2 | pugin | Vladislav | Nikolaevich | 1986/01/29 | ||
3 | Evgenin | Alexander | Federovich | 1964/04/30 | ||
4 | Annina | imħabba | P. | 1989/12/31 | ||
5 | Gerasimovsky | tama | P. | 1992/03/14 | 4 | partijiet komuni |
6 | Gerasimovsky | Oleg | Albertovich | 1985/01/29 | 4 | partijiet komuni |
7 | Sukhanovskaya | ġurija | A. | 1976/09/25 | 3 | sjieda konġunta Totali |
8 | Sukhanovskaya | Julia | Y. | 2001/01/10 | 3 | sjieda konġunta Totali |
Għalhekk, billi ssegwi l-sempliċi lejn ix-xellug jissieħbu eżempju sql, irċevejna lista tal-persuni kollha, li jiċċaqalqu aktar, waħda minn dawn il-proprjetajiet fi ekwità / sjieda konġunta.
Bħala konklużjoni nixtieq li jkun enfasizzat għal darb'oħra li kampjun ta 'kwalunkwe informazzjoni mid-database jeħtieġ li jittieħdu b'mod responsabbli. Ħafna sfumaturi miftuħa quddiemna ma xellug jissieħbu eżempju sempliċi sql, l-ispjegazzjoni li minnhom waħda - qabel ma tibda tikteb anke mistoqsija bażika, trid b'attenzjoni biex jifhem dak li rridu nġibu fl-aħħar. Xorti tajba!
Similar articles
Trending Now