ArvutidProgrammeerimine

Vasak liituda (SQL) - näiteks üksikasjalik kirjeldus, kasutamine vea

Igal tõeline relatsiooniline andmebaas, kõik andmed on jaotatud eraldi tabelis. Paljud tabelid on toodud kommunikatsioon skeemi üksteisega. Kuid abiga SQL päringuid see on täiesti võimalik panna seos andmete, mitte varjatud circuit. Seda tehakse sooritades liituda ühendus, mis võimaldab teil luua suhet laudu ja isegi ühendada näiliselt erinevad andmed.

See artikkel rääkida eelkõige vasakul välimine liituda. Enne kirjelduse seda tüüpi ühendus, lisada mõned andmebaasi tabeleid.

Ettevalmistused vajalikud tabelid

Näiteks meie andmebaasis on teavet inimeste ja nende kinnisvara. Kokkuvõte põhineb kolme tabelid: Peoples (inimesed), Realty (kinnisvara), Realty_peoples (tabel suhteid, kes, mida vara kuulub). Aluseks võetakse järgmised andmed salvestatakse tabelid inimesi:

Peoples

id

L_Name

F_Name

Middle_name

sünnipäev

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolajevitš

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

4

Annina

armastus

P.

31.12.1989

5

Gerasimovsky

lootus

P.

1992/03/14

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

7

Sukhanovskaya

žürii

A.

1976/09/25

8

Sukhanovskaya

Julia

Y.

01.10.2001

Kinnisvara:

kinnisvara

id

aadress

1

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

2

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

3

Arhangelski oblasti, Severodvinsk, st. Lenin, d. 134, q. 85

4

Arhangelski oblasti, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

5

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

Suhted inimesed - vara:

Realty_peoples

id_peoples

id_realty

tüüp

7

3

Kokku ühisomandi

8

3

Kokku ühisomandi

3

5

vara

7

1

vara

5

4

ühine osad

6

4

ühine osad

Vasak liituda (SQL) - Kirjeldus

Vasak ühendil on järgmine süntaks:

Table_A LEFT JOIN table_B [{ON predikaat} | {KASUTAMINE spisok_ koos tolbtsov}]

Ja skemaatiliselt järgmiselt:

Ja see väljend on tõlgitud kui "Vali kõik, ilma eranditeta, rida tabelites A ja B, kuvatakse ainult sobitamise rida predikaat. Kui tabelis leiti string tabel paari A, siis täitke saadud veergu Null - väärtused ".

Enamasti, kui lahkus seoses on märgitud, kasutades kasutatakse ainult siis, kui veerunimedel, mis on kavas muuta ühendus on samad.

Vasak liituda - näiteid kasutamise

Ühendamisel vasakul näeme, kõik inimesed nimekirjast, kui seal Peoples vara. Selleks vasakul liituda SQL päringu näiteks:

VALI Peoples. * Realty_peoples.id_realty, Realty_peoples.type

Rahvaid LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples;

Järgmised tulemused:

Query1

id

L_Name

F_Name

Middle_name

sünnipäev

id_realty

tüüp

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolajevitš

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

5

vara

4

Annina

armastus

P.

31.12.1989

5

Gerasimovsky

lootus

P.

1992/03/14

4

ühine osad

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

ühine osad

7

Sukhanovskaya

žürii

A.

1976/09/25

1

vara

7

Sukhanovskaya

žürii

A.

1976/09/25

3

Kokku ühisomandi

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Kokku ühisomandi

Nagu näeme, Ivanova Darya Pugin Vladislav ja Anninoy Lyubovi nr kinnistule õigusi.

Ja mis oleks me saanud, kasutades sisemise liituda Inner liituda? Nagu te teate, see välistab mittevastavad rida, nii kolm meie lõplik valim oleks lihtsalt langes:

Query1

id

L_Name

F_Name

Middle_name

sünnipäev

id_realty

tüüp

3

Evgenin

Alexander

Federovich

1964/04/30

5

vara

5

Gerasimovsky

lootus

P.

1992/03/14

4

ühine osad

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

ühine osad

7

Sukhanovskaya

žürii

A.

1976/09/25

1

vara

7

Sukhanovskaya

žürii

A.

1976/09/25

3

Kokku ühisomandi

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Kokku ühisomandi

Tundub, et teine versioon ka tingimustele vastavuse meie probleem. Siiski, kui hakkame lisama teise ja teises tabelis kolm inimest tulemus juba pöördumatult kadunud. Seetõttu praktikas kui kombineerides mitmeid tabeleid palju sagedamini kasutatakse vasakule ja paremale ühendus kui sisemine liituda.

Jätkab vaadata vasakule liituda SQL näiteid. Kinnitage tabeli aadresse meie maja:

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

rahvaid

VASAK LIITU Realty_peoples ON Peoples.id = Realty_peoples.id_peoples

VASAK LIITU Realty ON Realty.id = Realty_peoples.id_realty

Nüüd saame mitte ainult mingi õiguse, vaid ka aadressi kinnisvara:

Query1

id

L_Name

F_Name

Middle_name

sünnipäev

id_realty

tüüp

aadress

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolajevitš

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

5

vara

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

4

Annina

armastus

P.

31.12.1989

5

Gerasimovsky

lootus

P.

1992/03/14

4

ühine osad

Arhangelski oblasti, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

ühine osad

Arhangelski oblasti, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

7

Sukhanovskaya

žürii

A.

1976/09/25

3

Kokku ühisomandi

Arhangelski oblasti, Severodvinsk, st. Lenin, d. 134, q. 85

7

Sukhanovskaya

žürii

A.

1976/09/25

1

vara

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

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Kokku ühisomandi

Arhangelski oblasti, Severodvinsk, st. Lenin, d. 134, q. 85

Vasak liituda - tüüpiline error: invalid korras tabelis

Basic tehtud vigu vasakul välimine liituda lauad, kaks:

  1. Õigesti valitud järjekorras tabelid, mille andmed on kadunud.
  2. Kui vigu kasutades päringu liituda tabelid.

Mõtle esimene viga. Enne otsuse mingi probleem peab olema selgelt arusaadav, et see, mida me tahame saada lõpuks. Selles näites eespool võtsime iga üks inimesi, kuid täiesti kadunud informatsioon objekti all number 2, mille omanik ei leitud.

Kui kolisime tabelite päringu mõnes kohas ja oleks alustada «... Alates Realty lahkus liituda Peoples ...» mistahes vara, me ei kaotanud, siis ei ütle umbes inimesi.

Aga ärge kartke vasaku ühendus, lülitub täielikult välise, mis on lisatud tulemused ja sobitamine, mitte sobitamise rida.

Lõppude lõpuks, proovi maht on sageli väga suured ja lisaandmete on tegelikult kasutu. Peaasi - et aru saada, mida sa tahad saada tulemus: kõik inimesed nimekirja nende käsutuses vara või kogu vara nimekirja nende omanikele (kui üldse).

Vasak liituda - tüüpiline error: taotlus on õige määramisel tingimused Kui

Teine viga on seotud ka andmete kadumise ja ei ole alati kohe selge.

Lähme tagasi päringu, kui me lahkusime kaudu ühendused said andmed kõigi inimeste ja nende olemasoleva kinnisvara. Pea meeles järgmisi vasaku liituda SQL näiteks:

Rahvaid LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples;

Oletame tahame selgitada taotluse ja ei väljasta andmeid, kus seaduse tüübist - "Kinnisvara". Kui me lihtsalt lisada, kasutades vasakule liituda SQL, näide järgmine tingimus:

...

Kui tüüp <> "Property"

kaotame me andmeid inimesi, kes ei ole vara, sest null väärtus Null ei võrreldes järgmiselt:

Query1

id

L_Name

F_Name

Middle_name

sünnipäev

id_realty

tüüp

5

Gerasimovsky

lootus

P.

1992/03/14

4

ühine osad

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

ühine osad

7

Sukhanovskaya

žürii

A.

1976/09/25

3

Kokku ühisomandi

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Kokku ühisomandi

Selleks, et vältida vigade tegemist sel põhjusel, see on kõige parem seada valiku tingimus kohe ühendust. Soovitame kaaluda järgmisi vasaku liituda SQL näiteks.

VALI Peoples. * Realty_peoples.id_realty, Realty_peoples.type

rahvaid

VASAK LIITU Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples JA tüüp <> "Property")

Tulemuseks on järgmine:

Query1

id

L_Name

F_Name

Middle_name

sünnipäev

id_realty

tüüp

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolajevitš

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

4

Annina

armastus

P.

31.12.1989

5

Gerasimovsky

lootus

P.

1992/03/14

4

ühine osad

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

ühine osad

7

Sukhanovskaya

žürii

A.

1976/09/25

3

Kokku ühisomandi

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Kokku ühisomandi

Seega, pärast lihtne vasakul liituda SQL Näiteks saime nimekirja kõik inimesed, liigub edasi, üks neist omadustest on omakapitali / ühisomandi.

Kokkuvõtteks tahaksin veel kord rõhutada, et proovi mingit teavet andmebaasi tuleb võtta vastutustundlikult. Paljud nüansid avati meie ees vasakul liituda SQL lihtsa näite, selgitus, millest üks - enne kui hakata kirjutama isegi põhi päringu peate hoolikalt aru saada, mida me tahame saada lõpuks. Õnn kaasa!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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