TölvurForritun

Vinstri ganga (SQL) - dæmi, nákvæma lýsingu, notkun villa

Í neinum alvöru Venslagagnagrunnur, allar upplýsingar er dreift á sérstakri töflu. Margir af töflunum eru sett fram í samskiptum kerfi við hvert annað. Hins vegar, með hjálp SQL fyrirspurnir það er alveg hægt að setja tengil á milli gagna, ekki innbyggð í rásinni. Þetta er gert með því að framkvæma ganga tengingu sem gerir þér kleift að byggja upp tengsl milli hvaða fjölda borðum, og jafnvel tengja virðist ólíkum upplýsingum.

Þessi grein mun tala sérstaklega um vinstri ytri ganga. Áður en farið er að lýsa þessari tegund af tengsl, bæta í sumum gagnasafn matskeið.

Undirbúa nauðsynlegar töflur

Til dæmis, í gangasafni okkar, þar eru upplýsingar um fólk og fasteignir þeirra. Samantekt á grundvelli þriggja borðum: Lýðir (People), Realty (fasteignir), Realty_peoples (tafla sambönd, fólk sem af hvaða eign tilheyrir). Gera ráð fyrir eftirfarandi gögn sem geymd eru í töflum fólksins:

Peoples

id

L_name

F_name

Middle_name

Afmæli

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolaevich

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

4

Annina

ást

P.

1989/12/31

5

Gerasimovsky

vona

P.

1992/03/14

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

7

Sukhanovskaya

Jury

A.

1976/09/25

8

Sukhanovskaya

julia

Y.

2001/01/10

Fasteignir:

Fasteign

id

netfang

1

Arkhangelsk, ul. Voronin, d. 7, kv.6

2

Arkhangelsk, ul. Severodvinskaya, d. 84, q. 9 BR. 5

3

Arkhangelsk svæðinu, Severodvinsk, ST. Lenin, d. 134, q. 85

4

Arkhangelsk svæðinu, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

5

Arkhangelsk, pl. Terekhina, d. 89, q. 13

Tengsl manns - eign:

Realty_peoples

id_peoples

id_realty

tegund

7

3

Alls sameiginlegt eignarhald

8

3

Alls sameiginlegt eignarhald

3

5

eign

7

1

eign

5

4

sameign

6

4

sameign

Vinstri ganga (SQL) - Lýsing

Vinstri efnasambandið hefur eftirfarandi setningafræði:

Table_A LEFT JOIN table_B [{ON eiginleikann} | {USING spisok_ með tolbtsov}]

Og með skýringarmynd sem hér segir:

Og þetta tjáning er þýtt sem "Velja allt, án undantekninga, lína í töflu A og töflu B til að sýna aðeins samsvörun raðir af umsögnina. Ef borðið fannst í streng töflunni fyrir pör á, þá fylla leiðir dálka Null - gildi ".

Oftast, þegar fór tengingin er ætlað á, að nota er aðeins notuð þegar dálkinum nöfn, sem fyrirhugað er að gera tengingu eru þau sömu.

Vinstri ganga - dæmi um notkun

Með tengingu við vinstri við getum séð, allt fólkið á listanum og ef það Peoples eign. Til að gera þetta í vinstri ganga SQL fyrirspurn dæmi:

VELJA Peoples. *, Realty_peoples.id_realty, Realty_peoples.type

FRÁ Peoples LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples;

Með eftirfarandi niðurstöðum:

Query1

id

L_name

F_name

Middle_name

Afmæli

id_realty

tegund

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolaevich

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

5

eign

4

Annina

ást

P.

1989/12/31

5

Gerasimovsky

vona

P.

1992/03/14

4

sameign

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

sameign

7

Sukhanovskaya

Jury

A.

1976/09/25

1

eign

7

Sukhanovskaya

Jury

A.

1976/09/25

3

Alls sameiginlegt eignarhald

8

Sukhanovskaya

julia

Y.

2001/01/10

3

Alls sameiginlegt eignarhald

Eins og við sjáum, Ivanova Darya Pugin Vladislav og Anninoy Lyubovi Nei skráð réttindi fasteignir.

Og hvað hefðum við fengið, með því að nota innri þátt Inner þátt? Eins og þú veist, útilokar það ekki samsvörun raðir, þannig að þrír af endanlegri sýni okkar yrði einfaldlega niður:

Query1

id

L_name

F_name

Middle_name

Afmæli

id_realty

tegund

3

Evgenin

Alexander

Federovich

1964/04/30

5

eign

5

Gerasimovsky

vona

P.

1992/03/14

4

sameign

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

sameign

7

Sukhanovskaya

Jury

A.

1976/09/25

1

eign

7

Sukhanovskaya

Jury

A.

1976/09/25

3

Alls sameiginlegt eignarhald

8

Sukhanovskaya

julia

Y.

2001/01/10

3

Alls sameiginlegt eignarhald

Það virðist sem önnur útgáfa uppfyllir einnig skilyrði vanda okkar. Hins vegar, ef við byrjum að hengja á annan, og annað borð, þrír menn frá niðurstöðu þegar óafturkræfum farin. Því í raun, þegar sameina margar töflur miklu oftar notuð Vinstri og hægri tengingu en Inner ganga.

Mun halda áfram að líta til vinstri ganga SQL dæmi. Hengja borð með heimilisföng húsin okkar:

VELJA Peoples. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address

fRÁ Peoples

LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples

LEFT JOIN Fasteign ON Realty.id = Realty_peoples.id_realty

Nú fáum við ekki aðeins eins konar lögum, en einnig veffang fasteigna:

Query1

id

L_name

F_name

Middle_name

Afmæli

id_realty

tegund

netfang

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolaevich

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

5

eign

Arkhangelsk, pl. Terekhina, d. 89, q. 13

4

Annina

ást

P.

1989/12/31

5

Gerasimovsky

vona

P.

1992/03/14

4

sameign

Arkhangelsk svæðinu, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

sameign

Arkhangelsk svæðinu, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

7

Sukhanovskaya

Jury

A.

1976/09/25

3

Alls sameiginlegt eignarhald

Arkhangelsk svæðinu, Severodvinsk, ST. Lenin, d. 134, q. 85

7

Sukhanovskaya

Jury

A.

1976/09/25

1

eign

Arkhangelsk, ul. Voronin, d. 7, kv.6

8

Sukhanovskaya

julia

Y.

2001/01/10

3

Alls sameiginlegt eignarhald

Arkhangelsk svæðinu, Severodvinsk, ST. Lenin, d. 134, q. 85

Vinstri ganga - dæmigerður notkun villa: Ógildur málsmeðferð borð

Basic mistök gerð á vinstri ytri ganga borðum, tvö:

  1. Rétt valin röð af borðum sem gögn var glataður.
  2. Hvar villur þegar fyrirspurn með þátt borðum.

Íhuga fyrstu mistök. Áður en ákvörðun hvaða vandamál ætti að greinilega skilja að það sem við viljum fá í lokin. Í þessu dæmi hér að ofan, tók við hvert einasta einn af fólkinu, en alveg misst upplýsingar um hlut undir númer 2, sem eigandi fannst ekki.

Ef við fluttum borðin í fyrirspurn í sumum stöðum, og myndi byrja með «... Frá Realty eftir að taka þátt í Peoples ...» allir eitt eign, við viljum ekki hafa misst, þú munt ekki segja um fólk.

En ekki vera hrædd um vinstri tengingu skipta yfir í fulla ytri, sem er innifalinn í niðurstöðum og samsvörun, og ekki samsvarandi línur.

Eftir allt saman, rúmmál sýnis er oft mjög stór, og auka upplýsingar er í raun gagnslaus. The aðalæð hlutur - að reikna út hvað þú vilt fá niðurstöðu: allra manna með lista yfir fyrirliggjandi eigna þeirra eða öllu hótelinu listann við eigendur þeirra (ef einhver er).

Vinstri ganga - dæmigerður notkun villa: Biðja er rétt við að setja skilyrði í HVAR

Annað villa er einnig í tengslum við tap á gögnum, og eru ekki alltaf strax í ljós.

Við skulum fara aftur til fyrirspurnarinnar þegar við fórum í gegnum tengingar fékk gögn um allar fólki og núverandi eignum sínum. Hafa eftirfarandi í huga við vinstri ganga SQL dæmi:

FRÁ Peoples LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples;

Segjum að við viljum skýra beiðni og ekki framleiðsla gögn, þar sem gerð laga - "Property". Ef við auka einfaldlega með því að nota vinstri ganga SQL, dæmi um eftirfarandi skilyrði:

...

Þar tegund <> "Property"

Við munum missa gögn um fólk sem hefur enga eign, vegna þess að núll gildi Null ekki saman eins og hér segir:

Query1

id

L_name

F_name

Middle_name

Afmæli

id_realty

tegund

5

Gerasimovsky

vona

P.

1992/03/14

4

sameign

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

sameign

7

Sukhanovskaya

Jury

A.

1976/09/25

3

Alls sameiginlegt eignarhald

8

Sukhanovskaya

julia

Y.

2001/01/10

3

Alls sameiginlegt eignarhald

Til að koma í veg fyrir villur af sér stað af þeirri ástæðu, það er best að stilla val ástand strax eftir tengingu. Við mælum með að hafa eftirfarandi í huga við vinstri ganga SQL dæmi.

VELJA Peoples. *, Realty_peoples.id_realty, Realty_peoples.type

fRÁ Peoples

LEFT JOIN Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples OG tegund <> "Property")

Niðurstaðan verður sem hér segir:

Query1

id

L_name

F_name

Middle_name

Afmæli

id_realty

tegund

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolaevich

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

4

Annina

ást

P.

1989/12/31

5

Gerasimovsky

vona

P.

1992/03/14

4

sameign

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

sameign

7

Sukhanovskaya

Jury

A.

1976/09/25

3

Alls sameiginlegt eignarhald

8

Sukhanovskaya

julia

Y.

2001/01/10

3

Alls sameiginlegt eignarhald

Svona, með því að fylgja einföldum til vinstri ganga SQL dæmi, fékk við lista yfir allra manna, að flytja lengra, einn af þessum eiginleika í eigin fé / sameign.

Sem niðurstöðu ég vildi eins og til að undirstrika enn og aftur á að sýni af öllum upplýsingum úr gagnagrunninum þarf að taka ábyrgð. Margir blæbrigði opnaði fyrir framan okkur með vinstri ganga SQL einfalt dæmi, skýringin sem einn - áður en þú byrjar að skrifa jafnvel undirstöðu fyrirspurn, þú verður vandlega að skilja hvað við viljum fá í lokin. Gangi þér vel!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 is.delachieve.com. Theme powered by WordPress.