KompjûtersProgramming

Lofts join (SQL) - in foarbyld, de detaillearre beskriuwing, brûken fan 'e fout

Yn eltse echte relational databank, alle ynformaasje wurdt ferdield op in apart tafel. In soad fan de tabellen wurde neamd yn de kommunikaasje skema mei elkoar. Lykwols, mei help fan Sql Queries is it hiel goed mooglik om te setten in keppeling tusken de data, net ynbêde yn it sirkwy. Dit wurdt dien troch it útfieren fan in meidwaan ferbining, dat makket it mooglik om it bouwen fan in relaasje tusken alle oantal tabellen, en sels ferbine skynber disparate ynformaasje.

Dit artikel sil prate spesifyk oer de linker bûtenste meidwaan. Foar't jo fierder de beskriuwing fan dit type ferbining, add yn guon databanktabellen.

It tarieden fan de nedige tabellen

Bygelyks, yn ús database, is der ynformaasje oer minsken en harren ûnreplik guod. Gearfetting basearre op de trije tafels: Peoples (people), Realty (Real Estate), Realty_peoples (tabel relaasjes, minsken dy't fan wat eigendom heart by). Oannimme de folgjende gegevens opslein yn 'e tafels fen it folk:

Peoples

id

L_name

F_name

Middle_name

jierdei

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolajevitsj

29.01.1986

3

Evgenin

alexander

Federovich

04/30/1964

4

Yong

love

P.

31.12.1989

5

Gerasimovsky

hoopje

P.

14.03.1992

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

7

Sukhanovskaya

Jury

A.

09/25/1976

8

Sukhanovskaya

Julia

Y.

01.10.2001

Real Estate:

realty

id

adres

1

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

2

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

3

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

4

Arkhangelsk regio, Novodevich'e, ul. Proletarshaya, d. 16, q. 137

5

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

Relaasjes minsken - eigendom:

Realty_peoples

id_peoples

id_realty

type

7

3

Totaal joint eigendom

8

3

Totaal joint eigendom

3

5

eigendom

7

1

eigendom

5

4

Common dielen

6

4

Common dielen

Lofts join (Sql) - Beskriuwing

Left COMPOUND hat de folgjende syntaksis:

Table_A LEFT JOIN table_B [{ON predikaat} | {Mei it spisok_ mei tolbtsov}]

En schematically sa't it folget:

En dizze útdrukking wurdt oerset as "selektearje, sûnder útsûndering, line fan Table A en Tabel B te werjaan allinne de oerienkommende rigen fan it predikaat. As de tafel waard fûn yn de string tafel foar pearen A, dan folje de dêrút folgjende kolommen Null - wearden ".

Meast faak, doe't de linker ferbining wurdt oanjûn ON, mei help wurdt brûkt allinne as de kolom nammen, dy't de planning om de ferbining binne itselde.

Lofts join - foarbylden fan gebrûk

Mei de ferbining fan lofts we kinne sjen, al it folk út de list as der Peoples eigendom. Om dit te dwaan yn it linker join SQL query foarbyld:

SELECT Folken. *, Realty_peoples.id_realty, Realty_peoples.type

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

Mei de folgjende resultaten:

Query1

id

L_name

F_name

Middle_name

jierdei

id_realty

type

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolajevitsj

29.01.1986

3

Evgenin

alexander

Federovich

04/30/1964

5

eigendom

4

Yong

love

P.

31.12.1989

5

Gerasimovsky

hoopje

P.

14.03.1992

4

Common dielen

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common dielen

7

Sukhanovskaya

Jury

A.

09/25/1976

1

eigendom

7

Sukhanovskaya

Jury

A.

09/25/1976

3

Totaal joint eigendom

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Totaal joint eigendom

As wy sjogge, Ivanova Darya Pugin Vladislav en Anninoy Lyubovi Gjin registrearre Real Estate rjochten.

En wat soene wy hawwe krigen, mei help fan in ynderlik join Sintrale meidwaan? Sa't jo witte, it slút net-matching rigen, sa trije fan ús lêste sample soe gewoan wêze dropped:

Query1

id

L_name

F_name

Middle_name

jierdei

id_realty

type

3

Evgenin

alexander

Federovich

04/30/1964

5

eigendom

5

Gerasimovsky

hoopje

P.

14.03.1992

4

Common dielen

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common dielen

7

Sukhanovskaya

Jury

A.

09/25/1976

1

eigendom

7

Sukhanovskaya

Jury

A.

09/25/1976

3

Totaal joint eigendom

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Totaal joint eigendom

It soe lykje dat de twadde ferzje ek foldocht oan 'e betingsten fan ús probleem. Lykwols, as wy begjinne te hechtsje oan in oar, en in oare tafel, trije minsken út it resultaat al irretrievably ferdwûn. Dêrom wurdt yn de praktyk, doe't kombinearjen meardere tabellen folle faker brûkt lofter en rjochter ferbining dan Sintrale meidwaan.

Sille trochgean mei it sykjen nei lofts join SQL foarbylden. Taheakje in tafel mei adressen fan ús huzen:

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

FROM Peoples

LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples

LEFT JOIN Realty ON Realty.id = Realty_peoples.id_realty

No krije wy net allinne in soarte fan wet, mar ek it adres fan ûnreplik guod:

Query1

id

L_name

F_name

Middle_name

jierdei

id_realty

type

adres

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolajevitsj

29.01.1986

3

Evgenin

alexander

Federovich

04/30/1964

5

eigendom

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

4

Yong

love

P.

31.12.1989

5

Gerasimovsky

hoopje

P.

14.03.1992

4

Common dielen

Arkhangelsk regio, Novodevich'e, ul. Proletarshaya, d. 16, q. 137

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common dielen

Arkhangelsk regio, Novodevich'e, ul. Proletarshaya, d. 16, q. 137

7

Sukhanovskaya

Jury

A.

09/25/1976

3

Totaal joint eigendom

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

7

Sukhanovskaya

Jury

A.

09/25/1976

1

eigendom

Archangelsk, ul. Voronin q. 7, kv.6

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Totaal joint eigendom

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

Lofts meidwaan - de typyske brûken fan flater: ûnjildige proseduere tafel

Basis flaters makke by de linker bûtenste dwaan tabellen, twa:

  1. Korrekt ik selektearre de folchoarder fan tabellen foar hokker gegevens waard ferlern.
  2. Wêr flaters by it brûken fan in sykopdracht mei dwaan tabellen.

Tink oan earste flater. Foarôfgeand oan it beslút fan in probleem moat dúdlik begrepen dat wat wy wolle te krijen yn 'e ein. Yn dit foarbyld hjirboppe, wy namen alle inkele ien fan 'e minsken, mar hielendal ferlear de ynformaasje oer it foarwerp ûnder de nûmer 2, wêrfan eigner waard net fûn.

As wy ferhuze de tafels yn in sykopdracht op guon plakken, en soe begjinne mei «... From Realty ferliet join Folken ...» gjin iene eigendom, wy soene net hawwe ferlern, dan sil net fertelle oer minsken.

Mar net wêze bang fan 'e linker ferbining, oerskeakelje nei folsleine eksterne, dy't opnaam is yn de resultaten en de bypassende, en net it bypassende linen.

Ommers, it folume fan foarbyld is faak hiel grut, en ekstra gegevens is eins ûnnut. It wichtichste ding - út te finen wat jo wolle krije in resultaat: fan alle minsken mei in list fan harren beskikber eigendom of de hiele eigendom list mei harren eigners (at se oanwêzich binne).

Lofts meidwaan - de typyske brûken fan flater: oanfraach just is doe't it ynstellen fan de omstannichheden yn de Wo

De twadde flater wurdt ek yn ferbân brocht mei ferlies fan gegevens, en binne net altyd fuortendaliks sichtber.

Lit ús gean werom nei de query doe't wy ferlieten fia oanslutings ûntfongen gegevens foar alle minsken en harren besteande eigendom. Tink om 'e neikommende mei lofts meidwaan SQL- foarbyld:

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

Stel jo wolle refine de query en sjen litte de gegevens type dêr't it rjocht - "Property." As wy gewoanwei append, brûkt lofts meidwaan SQL, in foarbyld fan de folgjende betingst:

...

Wêr type <> "Property"

wy sille ferlieze de data op minsken dy't hawwe gjin eigendom, omdat de null wearde Null wurdt net ferlike as folget:

Query1

id

L_name

F_name

Middle_name

jierdei

id_realty

type

5

Gerasimovsky

hoopje

P.

14.03.1992

4

Common dielen

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common dielen

7

Sukhanovskaya

Jury

A.

09/25/1976

3

Totaal joint eigendom

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Totaal joint eigendom

Om foar te kommen 'e opkomst fan fout foar dizze reden, is it bêste om de seleksje tastân fuortendaliks op ferbining. Wy suggest te beskôgje de folgjende mei lofts join SQL foarbyld.

SELECT Folken. *, Realty_peoples.id_realty, Realty_peoples.type

FROM Peoples

LEFT JOIN Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples EN type <> "Property")

It resultaat sil wêze as folget:

Query1

id

L_name

F_name

Middle_name

jierdei

id_realty

type

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolajevitsj

29.01.1986

3

Evgenin

alexander

Federovich

04/30/1964

4

Yong

love

P.

31.12.1989

5

Gerasimovsky

hoopje

P.

14.03.1992

4

Common dielen

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common dielen

7

Sukhanovskaya

Jury

A.

09/25/1976

3

Totaal joint eigendom

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Totaal joint eigendom

Sa, troch it folgjen fan it simpel nei lofts meidwaan SQL- bygelyks, we krigen in list fan alle folk, beweecht fierder, ien fan dizze eigenskippen yn in eigen fermogen / mienskiplik eigendom.

As ôfsluting ik soe graach beklamje ien kear wer dat in stekproef fan alle ynformaasje fan de databank moatte wurde nommen ferantwurde. In soad nuânses iepene foar ús mei lofts join SQL simpel foarbyld, de útlis wêrfan ien - foar't jo begjinne te skriuwen sels basis query, jim moatte soarchfâldich om te begripen wat wy wolle te krijen yn 'e ein. Good luck!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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