Mga computerProgramming

Kaliwa sumali sa (SQL) - isang halimbawa, ang detalyadong paglalarawan, ang paggamit ng mga error

Sa anumang tunay na pamanggit database, ang lahat ng impormasyon ay ipinamamahagi sa isang hiwalay na table. Marami sa mga talahanayan ay itinakda sa ang scheme ng pakikipag-usap sa bawat isa. Gayunman, sa tulong ng Sql query ito ay lubos na posible na maglagay ng isang link sa pagitan ng mga data, hindi naka-embed sa circuit. Ginagawa ito sa pamamagitan ng pagsasagawa ng isang sumali sa koneksyon, na nagpapahintulot sa iyo na bumuo ng isang relasyon sa pagitan ng anumang bilang ng mga talahanayan, at kahit na kumonekta mukha disparate impormasyon.

Ang artikulong ito ay makipag-usap tungkol sa partikular na kaliwa panlabas na sumali. Bago ka magpatuloy sa paglalarawan ng ganitong uri ng koneksyon, idagdag sa ilang mga talahanayan ng database.

Inihahanda ang mga kinakailangang mga talahanayan

Halimbawa, sa aming database, may impormasyon tungkol sa mga tao at ang kanilang mga real estate. Buod batay sa tatlong mga talahanayan: People (tao), Realty (real estate), Realty_peoples (relasyon mesa, mga taong mula sa kung ano property ay kabilang sa). Ipagpalagay na ang mga sumusunod na data na naka-imbak sa mga talahanayan ng mga tao:

People

ID

L_name

F_name

Middle_name

kaarawan

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolaevich

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

4

annina

pag-ibig

P.

1989/12/31

5

Gerasimovsky

pag-asa

P.

1992/03/14

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

7

Sukhanovskaya

hurado

A.

1976/09/25

8

Sukhanovskaya

Julia

Y.

2001/01/10

Real estate:

ari-arian

ID

address

1

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

2

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

3

Arkhangelsk rehiyon, Severodvinsk, st. Lenin, d. 134, q. 85

4

Arkhangelsk rehiyon, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

5

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

Relations tao - ari-arian:

Realty_peoples

id_peoples

id_realty

uri

7

3

Kabuuang pinagsamang pagmamay-ari

8

3

Kabuuang pinagsamang pagmamay-ari

3

5

ari-arian

7

1

ari-arian

5

4

Mga karaniwang mga bahagi

6

4

Mga karaniwang mga bahagi

Kaliwa sumali (Sql) - Paglalarawan

Kaliwa compound may mga sumusunod na syntax:

Table_A KALIWA SUMALI table_B [{ON predicate} | {PAGGAMIT spisok_ na may tolbtsov}]

At skematikong tulad ng sumusunod:

At ito expression ay isinalin bilang "Piliin Lahat, nang walang pagbubukod, linya ng Table A at Table B upang ipakita lamang ang pagtutugma ng mga hilera ng panaguri. Kung ang talahanayan ay natagpuan sa talahanayan string para sa mga pares A, pagkatapos ay punan ang mga nagresultang mga haligi Null - halaga ".

Kadalasan, kapag ang mga natitira koneksyon ay ipinahiwatig ON, gamit ay ginagamit lamang kapag ang mga pangalan ng haligi, na kung saan ay binalak upang gawin ang mga koneksyon ay pareho.

Kaliwa sumali - mga halimbawa ng paggamit

Gamit ang koneksyon ng kaliwang maaari naming makita, ang lahat ng mga tao mula sa listahan kung may People ari-arian. Upang gawin ito sa kaliwang sumali sa sql query halimbawa:

SELECT People. *, Realty_peoples.id_realty, Realty_peoples.type

MULA People KALIWA SUMALI Realty_peoples ON Peoples.id = Realty_peoples.id_peoples;

Sa pamamagitan ng mga sumusunod na resulta:

Query1

ID

L_name

F_name

Middle_name

kaarawan

id_realty

uri

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolaevich

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

5

ari-arian

4

annina

pag-ibig

P.

1989/12/31

5

Gerasimovsky

pag-asa

P.

1992/03/14

4

Mga karaniwang mga bahagi

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

Mga karaniwang mga bahagi

7

Sukhanovskaya

hurado

A.

1976/09/25

1

ari-arian

7

Sukhanovskaya

hurado

A.

1976/09/25

3

Kabuuang pinagsamang pagmamay-ari

8

Sukhanovskaya

Julia

Y.

2001/01/10

3

Kabuuang pinagsamang pagmamay-ari

Tulad ng nakikita natin, Ivanova Darya Pugin Vladislav at Anninoy Lyubovi Hindi nakarehistro sa karapatang real estate.

At ano ang gusto namin natanggap, gamit ang isang panloob sumali Inner sumali? Tulad ng alam mo, hindi ito isinasali ng walang katugmang mga hilera, kaya tatlo sa aming panghuling sample Gusto lang bumaba:

Query1

ID

L_name

F_name

Middle_name

kaarawan

id_realty

uri

3

Evgenin

Alexander

Federovich

1964/04/30

5

ari-arian

5

Gerasimovsky

pag-asa

P.

1992/03/14

4

Mga karaniwang mga bahagi

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

Mga karaniwang mga bahagi

7

Sukhanovskaya

hurado

A.

1976/09/25

1

ari-arian

7

Sukhanovskaya

hurado

A.

1976/09/25

3

Kabuuang pinagsamang pagmamay-ari

8

Sukhanovskaya

Julia

Y.

2001/01/10

3

Kabuuang pinagsamang pagmamay-ari

Gusto Ito tila na ang ikalawang bersyon din ay nakakatugon sa mga kondisyon ng aming mga problema. Gayunpaman, kung nagsisimula namin upang i-attach sa isa pa, at isa pa mesa, tatlong tao mula sa resulta na irretrievably nawala. Samakatuwid, sa kasanayan, kapag pagsasama ng maramihang mga talahanayan mas madalas na ginagamit Kaliwa at Kanan na koneksyon sa Inner sumali.

Ay patuloy na tumingin sa kaliwa sumali sa sql halimbawa. Mag-attach ng isang talahanayan na may mga address ng aming mga bahay:

SELECT People. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address

MULA People

Kaliwa SUMALI Realty_peoples ON Peoples.id = Realty_peoples.id_peoples

Kaliwa SUMALI Realty ON Realty.id = Realty_peoples.id_realty

Ngayon makuha namin hindi lamang isang uri ng batas, kundi pati na rin ang address ng real estate:

Query1

ID

L_name

F_name

Middle_name

kaarawan

id_realty

uri

address

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolaevich

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

5

ari-arian

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

4

annina

pag-ibig

P.

1989/12/31

5

Gerasimovsky

pag-asa

P.

1992/03/14

4

Mga karaniwang mga bahagi

Arkhangelsk rehiyon, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

Mga karaniwang mga bahagi

Arkhangelsk rehiyon, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

7

Sukhanovskaya

hurado

A.

1976/09/25

3

Kabuuang pinagsamang pagmamay-ari

Arkhangelsk rehiyon, Severodvinsk, st. Lenin, d. 134, q. 85

7

Sukhanovskaya

hurado

A.

1976/09/25

1

ari-arian

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

8

Sukhanovskaya

Julia

Y.

2001/01/10

3

Kabuuang pinagsamang pagmamay-ari

Arkhangelsk rehiyon, Severodvinsk, st. Lenin, d. 134, q. 85

Kaliwa sumali sa - ang tipikal na paggamit ng mga error: invalid procedure mesa

Basic pagkakamali na ginawa sa kaliwang panlabas na sumali sa mga talahanayan, dalawang:

  1. Tama pinili ang pagkakasunud-sunod ng mga talahanayan para sa kung saan ang data ay mawawala.
  2. Saan error kapag gumagamit ng isang query na may sumali sa mga talahanayan.

Isaalang-alang ang unang pagkakamali. Bago ang desisyon ng anumang problema ay dapat na malinaw na nauunawaan na kung ano ang gusto namin upang makakuha ng sa dulo. Sa halimbawa na ito sa itaas, kinuha namin ang bawat solong isa sa mga tao, ngunit ganap na nawala ang impormasyon tungkol sa mga bagay sa ilalim ng number 2, ang may-ari ay hindi natagpuan.

Kung inilipat namin ang mga talahanayan sa isang query sa ilang mga lugar, at gusto magsimula sa «... Mula Realty kaliwa sumali People ...» anumang isa ari-arian, ay hindi sana namin nawala, hindi mo na sabihin tungkol sa mga tao.

Ngunit huwag matakot sa kaliwa koneksyon, lumipat sa full panlabas, na kung saan ay kasama sa mga resulta at ang matching, at hindi ang pagtutugma ng mga linya.

Pagkatapos ng lahat, ang dami ng sample ay madalas na masyadong malaki, at dagdag na data ay aktwal na walang silbi. Ang pangunahing bagay - upang malaman kung ano ang nais mong makakuha ng isang resulta: ng lahat ng mga tao na may isang listahan ng kanilang mga magagamit na ari-arian o ang buong listahan ng ari-arian sa kanilang mga may-ari (kung mayroon man).

Kaliwa sumali sa - ang tipikal na paggamit ng mga error: Request ay tama kapag nagtatakda ng mga kundisyon sa Nasaan

Ang ikalawang error ay din na kaugnay sa pagkawala ng data, at ay hindi palaging agad maliwanag.

Sabihin bumalik sa query kapag iniwan namin sa pamamagitan ng mga koneksyon na natanggap ng data para sa lahat ng mga tao at ang kanilang mga umiiral na mga ari-arian. Tandaan ang mga sumusunod sa kaliwang sumali sa sql Halimbawa:

MULA People KALIWA SUMALI Realty_peoples ON Peoples.id = Realty_peoples.id_peoples;

Ipagpalagay na nais naming linawin ang kahilingan at hindi output ng data, kung saan ang uri ng batas - "Property". Kung gagawin lang ikabit, gamit ang kaliwa sumali sa sql, ang isang halimbawa ng mga sumusunod na kondisyon:

...

Kung saan i-type ang <> "Property"

kami ay mawalan ng data sa mga taong walang ari-arian, dahil ang null halaga Null ay hindi kung ihahambing ang mga sumusunod:

Query1

ID

L_name

F_name

Middle_name

kaarawan

id_realty

uri

5

Gerasimovsky

pag-asa

P.

1992/03/14

4

Mga karaniwang mga bahagi

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

Mga karaniwang mga bahagi

7

Sukhanovskaya

hurado

A.

1976/09/25

3

Kabuuang pinagsamang pagmamay-ari

8

Sukhanovskaya

Julia

Y.

2001/01/10

3

Kabuuang pinagsamang pagmamay-ari

Upang maiwasan ang mga error mula sa nagaganap para sa kadahilanang ito, ito ay pinakamahusay upang i-set ang kalagayan na seleksyon kaagad pagkatapos matanggap ang koneksyon. Iminumungkahi namin na isaalang-alang ang mga sumusunod na gamit ang kaliwang sumali sa sql halimbawa.

SELECT People. *, Realty_peoples.id_realty, Realty_peoples.type

MULA People

Kaliwa SUMALI Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples AT i-type ang <> "Property")

Ang resulta nito ay ang mga sumusunod:

Query1

ID

L_name

F_name

Middle_name

kaarawan

id_realty

uri

1

Ivanova

Daria

B.

2000/07/16

2

Pugin

Vladislav

Nikolaevich

1986/01/29

3

Evgenin

Alexander

Federovich

1964/04/30

4

annina

pag-ibig

P.

1989/12/31

5

Gerasimovsky

pag-asa

P.

1992/03/14

4

Mga karaniwang mga bahagi

6

Gerasimovsky

Oleg

Albertovich

1985/01/29

4

Mga karaniwang mga bahagi

7

Sukhanovskaya

hurado

A.

1976/09/25

3

Kabuuang pinagsamang pagmamay-ari

8

Sukhanovskaya

Julia

Y.

2001/01/10

3

Kabuuang pinagsamang pagmamay-ari

Kaya, sa pamamagitan ng pagsunod sa mga simpleng sa kaliwa sumali sa sql Halimbawa, nakatanggap kami ng listahan ng lahat ng mga tao, gumagalaw pa, isa sa mga pag-aari sa isang equity / joint pagmamay-ari.

Bilang isang konklusyon Gusto kong bigyang-diin muli na ang isang sample ng anumang impormasyon mula sa database na kailangan upang madala nang responsable. Maraming mga nuances binuksan sa harap ng sa amin na may kaliwa sumali sa sql simpleng halimbawa, ang paliwanag ng kung saan ang isa - bago ka magsimulang magsulat ng kahit na mga pangunahing query, dapat kang maingat upang maunawaan kung ano ang gusto namin upang makakuha ng sa dulo. Good luck!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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