ՀամակարգիչներԾրագրավորում

Ձախ միանալ (SQL) - օրինակ, մանրամասն նկարագրությունը, օգտագործումը սխալի

Ցանկացած իրական Հարաբերական տվյալների բազայում, ամբողջ տեղեկատվությունը, որը բաժանվում է առանձին սեղանի շուրջ: Շատերը սեղանների սահմանվում են կապի սխեմայի միմյանց հետ: Սակայն, օգնությամբ SQL հարցումներ , դա միանգամայն հնարավոր է տեղադրել կապը տվյալներով, ոչ ներդրված է միացում մի ստեղծեք: Սա արվում է կատարել մի միանալ կապը, որը թույլ է տալիս Ձեզ կառուցել փոխհարաբերությունները ցանկացած շարք սեղանների, եւ նույնիսկ միացնել թվացյալ անհամատեղելի տեղեկություններ.

Այս հոդվածը կարող է խոսել այն մասին, որ ձախ արտաքին անդամակցել: Մինչ նկարագրության այս տեսակի հետ կապված, ավելացնել որոշ բազայի սեղաններ:

Պատրաստելիս անհրաժեշտ սեղաններ

Օրինակ, մեր տվյալների բազայում, տեղեկություն կա այն մասին, մարդկանց եւ նրանց անշարժ գույքի: Ամփոփում հիման վրա երեք աղյուսակներում Մարդիք (մարդ), Realty (անշարժ գույք), Realty_peoples (սեղան հարաբերություններ, մարդիկ, ովքեր այն բանից, թե գույքը պատկանում է): Ստանձնել հետեւյալ տվյալները պահվում են սեղանների ժողովրդի:

Մարդիք

id

L_name

F_name

Middle_name

ծննդյան օր

1

Իվանովան

Դարյա

Բ

07/16/2000

2

Pugin

Վլադիսլավ

Nikolaevich

29.01.1986

3

Evgenin

alexander

Federovich

04/30/1964

4

Annina

սիրել

P.

31.12.1989

5

Gerasimovsky

հույս

P.

14.03.1992

6

Gerasimovsky

oleg

Albertovich

01/29/1985

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

8

Sukhanovskaya

Julia

Y.

01.10.2001

Անշարժ գույքի:

անշարժ գույք

id

հասցե

1

Արխանգելսկի, ուլ. Վորոնինը, դ. 7, kv.6

2

Արխանգելսկի, ուլ. Severodvinskaya, դ. 84, q. 9 BR. 5

3

Արխանգելսկի մարզ, Severodvinsk, փ. Լենինը, դ. 134, q. 85

4

Արխանգելսկի մարզ, Novodvinsk, ուլ. Proletarshaya, դ. 16, q. 137

5

Արխանգելսկի, pl. Terekhina, դ. 89, q. 13

Հարաբերություններ մարդիկ - Գույքի:

Realty_peoples

id_peoples

id_realty

տիպ

7

3

Ընդհանուր համատեղ սեփականություն

8

3

Ընդհանուր համատեղ սեփականություն

3

5

սեփականություն

7

1

սեփականություն

5

4

ընդհանուր մասեր

6

4

ընդհանուր մասեր

Ձախ միանալ (SQL) - Նկարագրություն

Ձախ բարդ ունի հետեւյալ շարահյուսություն:

Table_A ՁԱԽ ՄԻԱՑԵՔ table_B [{ՎՐԱ նախորդող} | {ՕԳՏԱԳՈՐԾԵԼՈՎ spisok_ հետ tolbtsov}]

Եւ սխեմատիկորեն հետեւյալն են:

Եւ այս արտահայտությունը թարգմանվում է որպես "Ընտրել բոլորը, առանց բացառության, գիծը Աղյուսակ A եւ Աղյուսակ Բ ցուցադրել միայն համապատասխան շարքերում ստորոգյալի: Եթե սեղանը հայտնաբերվել է լարային սեղանի համար զույգերում, ապա լրացրեք արդյունքում սյուները Null - արժեքները »:

Առավել հաճախ, երբ թողել կապը նշված, օգտագործելով այն օգտագործվում է միայն այն ժամանակ, երբ սյունակում անունները, որը պլանավորված է կատարել կապը նույնն են:

Ձախ միանալ - օրինակներ օգտագործման

Հետ կապի ձախ մենք կարող ենք տեսնել, ամբողջ ժողովուրդը միասին ցուցակում, եթե կա ժողովրդական սեփականությունը. Որպեսզի դա անել, որ ձախ միանալ SQL Query օրինակին:

SELECT Մարդիք *, Realty_peoples.id_realty, Realty_peoples.type

Է Մարդիք ՄԵԿՆԵԼ Է ՄԻԱՆԱԼ Realty_peoples ՎԵՐԱԲԵՐՅԱԼ Peoples.id = Realty_peoples.id_peoples.

Գրանցվեցին հետեւյալ արդյունքները.

Query1

id

L_name

F_name

Middle_name

ծննդյան օր

id_realty

տիպ

1

Իվանովան

Դարյա

Բ

07/16/2000

2

Pugin

Վլադիսլավ

Nikolaevich

29.01.1986

3

Evgenin

alexander

Federovich

04/30/1964

5

սեփականություն

4

Annina

սիրել

P.

31.12.1989

5

Gerasimovsky

հույս

P.

14.03.1992

4

ընդհանուր մասեր

6

Gerasimovsky

oleg

Albertovich

01/29/1985

4

ընդհանուր մասեր

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

1

սեփականություն

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

3

Ընդհանուր համատեղ սեփականություն

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Ընդհանուր համատեղ սեփականություն

Քանի որ մենք տեսնում ենք, Իվանովան Դարյա Pugin Վլադիսլավ եւ Anninoy Lyubovi ոչ գրանցվել անշարժ գույքի իրավունքները:

Իսկ ինչ ենք ստացել, օգտագործելով ներքին միանալ Ներքին միանալ. Քանի որ դուք գիտեք, որ դա բացառում է ոչ-համընկնող տողեր, այնպես որ, երեքը մեր վերջնական նմուշի պարզապես պետք է կարճվեն:

Query1

id

L_name

F_name

Middle_name

ծննդյան օր

id_realty

տիպ

3

Evgenin

alexander

Federovich

04/30/1964

5

սեփականություն

5

Gerasimovsky

հույս

P.

14.03.1992

4

ընդհանուր մասեր

6

Gerasimovsky

oleg

Albertovich

01/29/1985

4

ընդհանուր մասեր

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

1

սեփականություն

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

3

Ընդհանուր համատեղ սեփականություն

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Ընդհանուր համատեղ սեփականություն

Այն կարող է թվալ, որ երկրորդ տարբերակը նույնպես բավարարում այն պայմանները, մեր խնդրի. Սակայն, եթե մենք սկսում ենք կցել մեկ այլ, եւ մեկ այլ սեղանի, երեք հոգի են արդյունքի արդեն անվերադարձ գնացել. Այդ իսկ պատճառով, գործնականում, երբ համատեղելով մի քանի սեղաններ շատ ավելի հաճախ օգտագործվում է ձախ եւ աջ կապը ավելի ներքին միանալ.

Շարունակելու է նայենք դեպի ձախ միանալ SQL օրինակներ: Կցել աղյուսակը հասցեներով մեր տների

SELECT Մարդիք *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address

Է ժողովուրդների

ՄԵԿՆԵԼ ՄԻԱՑԵՔ Realty_peoples ՎԵՐԱԲԵՐՅԱԼ Peoples.id = Realty_peoples.id_peoples

ՄԵԿՆԵԼ ՄԻԱՑԵՔ Realty ՎԵՐԱԲԵՐՅԱԼ Realty.id = Realty_peoples.id_realty

Այժմ մենք ստանում ոչ միայն մի տեսակ օրենքի, այլեւ հասցեն անշարժ գույքի:

Query1

id

L_name

F_name

Middle_name

ծննդյան օր

id_realty

տիպ

հասցե

1

Իվանովան

Դարյա

Բ

07/16/2000

2

Pugin

Վլադիսլավ

Nikolaevich

29.01.1986

3

Evgenin

alexander

Federovich

04/30/1964

5

սեփականություն

Արխանգելսկի, pl. Terekhina, դ. 89, q. 13

4

Annina

սիրել

P.

31.12.1989

5

Gerasimovsky

հույս

P.

14.03.1992

4

ընդհանուր մասեր

Արխանգելսկի մարզ, Novodvinsk, ուլ. Proletarshaya, դ. 16, q. 137

6

Gerasimovsky

oleg

Albertovich

01/29/1985

4

ընդհանուր մասեր

Արխանգելսկի մարզ, Novodvinsk, ուլ. Proletarshaya, դ. 16, q. 137

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

3

Ընդհանուր համատեղ սեփականություն

Արխանգելսկի մարզ, Severodvinsk, փ. Լենինը, դ. 134, q. 85

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

1

սեփականություն

Արխանգելսկի, ուլ. Վորոնինը, դ. 7, kv.6

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Ընդհանուր համատեղ սեփականություն

Արխանգելսկի մարզ, Severodvinsk, փ. Լենինը, դ. 134, q. 85

Ձախ միանալ - բնորոշ օգտագործումը սխալի անվավեր ընթացակարգը սեղան

Հիմնական սխալներ է ձախ Outer միանալ սեղաններ, երկու:

  1. Ճիշտ ընտրված կարգը սեղանների, որոնց տվյալները կորել էր:
  2. Որտեղ սխալներ, երբ, օգտագործելով հարցմանը հետ միանալու սեղաններ:

Հաշվի առնել առաջին սխալը: Նախքան որոշմամբ ցանկացած խնդիր պետք է հստակ հասկանալ, որ այն, ինչ մենք ուզում ենք ստանալ մինչեւ վերջ: Այս օրինակում վերեւում, մենք վերցրել ամեն մեկը ժողովրդի, բայց բոլորովին կորցրել է տեղեկատվություն մասին օբյեկտի տակ թիվ 2, որի սեփականատերը չի գտնվել:

Եթե մենք տեղափոխվեցինք սեղանները հարցման որոշ տեղերում, եւ պետք է սկսել է «... From Realty թողել միանալ իրենց ժողովրդներին ...» որեւէ մեկը գույքը, մենք չէինք կորցրել, դուք ստիպված չեք պատմել մարդկանց մասին.

Բայց չեն կարող լինել վախեցած է ձախ կապի, միացնում է լիարժեք արտաքին, որը ներառված է արդյունքների եւ համապատասխանող, եւ ոչ թե համապատասխանող տողերը.

Ի վերջո, ծավալը նմուշի հաճախ շատ մեծ է, եւ լրացուցիչ տվյալները, ըստ էության, անիմաստ է: Հիմնական բան է պարզել, թե ինչ դուք ուզում եք ստանալ մի արդյունք: Բոլոր մարդիկ մի ցուցակում իրենց առկա գույքի կամ ամբողջ գույքի ցանկում իրենց տերերին (եթե այդպիսիք կան):

Ձախ միանալ - բնորոշ օգտագործումը սխալի հրավեր է ուղղել, երբ ընդլայնված պայմանները Որտեղ

Երկրորդը սխալ է նաեւ կապված կորստի տվյալների, եւ միշտ չէ, որ անմիջապես ակնհայտ է.

Եկեք վերադառնանք հարցմանը, երբ մենք թողել միջոցով միացումներ ստացված տվյալների համար բոլոր մարդիկ եւ նրանց առկա գույքի. Զրուցարան | հետեւյալը ձախ միանալ SQL օրինակին:

Է Մարդիք ՄԵԿՆԵԼ Է ՄԻԱՆԱԼ Realty_peoples ՎԵՐԱԲԵՐՅԱԼ Peoples.id = Realty_peoples.id_peoples.

Ենթադրենք, որ մենք ցանկանում ենք հստակեցնել խնդրանքը եւ չի ելքային տվյալները, որտեղ տեսակը օրենքի «գույք»: Եթե մենք պարզապես կախել, օգտագործելով ձախ միանալ SQL, մի օրինակ է հետեւյալ պայմանով `

...

Որտեղ տիպը <> «գույք»

մենք կկորցնենք այն տվյալները, մարդկանց վրա, ովքեր չունեն գույքը, քանի որ զրո արժեք Null չի համադրվում է հետեւյալ կերպ.

Query1

id

L_name

F_name

Middle_name

ծննդյան օր

id_realty

տիպ

5

Gerasimovsky

հույս

P.

14.03.1992

4

ընդհանուր մասեր

6

Gerasimovsky

oleg

Albertovich

01/29/1985

4

ընդհանուր մասեր

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

3

Ընդհանուր համատեղ սեփականություն

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Ընդհանուր համատեղ սեփականություն

Կանխել սխալները տեղի համար այդ պատճառով, դա լավ է սահմանել ընտրության վիճակը անմիջապես հետո կապով. Մենք առաջարկում ենք հաշվի առնել, որ հետեւում է ձախ միանալ SQL օրինակին.

SELECT Մարդիք *, Realty_peoples.id_realty, Realty_peoples.type

Է ժողովուրդների

ՁԱԽ ՄԻԱՑԵՔ Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples եւ տպեք <> «գույքի»)

Արդյունքը լինելու է լինել հետեւյալը.

Query1

id

L_name

F_name

Middle_name

ծննդյան օր

id_realty

տիպ

1

Իվանովան

Դարյա

Բ

07/16/2000

2

Pugin

Վլադիսլավ

Nikolaevich

29.01.1986

3

Evgenin

alexander

Federovich

04/30/1964

4

Annina

սիրել

P.

31.12.1989

5

Gerasimovsky

հույս

P.

14.03.1992

4

ընդհանուր մասեր

6

Gerasimovsky

oleg

Albertovich

01/29/1985

4

ընդհանուր մասեր

7

Sukhanovskaya

ժյուրի

Ա.

09/25/1976

3

Ընդհանուր համատեղ սեփականություն

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Ընդհանուր համատեղ սեփականություն

Այսպիսով, հետեւելով պարզ է ձախ միանալ SQL օրինակին, մենք ստացել մի ցանկ, բոլոր այն մարդկանց, շարժվում հետագա, մեկը այդ հատկությունների բաժնային / համատեղ սեփականության.

Որպես վերջաբան, ես ցանկանում եմ մեկ անգամ եւս շեշտել է, որ մի նմուշ ցանկացած տեղեկատվության տվյալների բազայի համար անհրաժեշտ է ձեռնարկել պատասխանատու. Շատ նրբություններ բացվել առջեւ մեզ հետ ձախ միանալ SQL պարզ օրինակ, այն բացատրությունը, որի մեկ, նախքան դուք սկսում է գրել նույնիսկ հիմնական հարցմանը, դուք պետք է ուշադիր է հասկանալ, թե ինչ ենք ուզում ստանալ մինչեւ վերջ: Հաջողություն!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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