KomputeranBernameyên

Çep beşdarî (SQL) - nimûne, bi hûrgilî, bikaranîna error

Di her heye rast têkilî, hemû agahî li ser maseyekê cuda de hatin belavkirin. Gelek ji maseyên bi derve di xaxê danûstendina bi hev re danîn. Lê belê, bi alîkariya SQL Queries ev mumkin e ku di navbera Daneyên, di dewreyê de veşartî ne. Ev yek bi stran û girêdana beşdarî, ku destûrê dide te ku avakirina têkiliyên di navbera her hejmara maseyên, û heta bi girêdan agahî ewla şundamayî kirin.

Ev gotar bi taybetî li ser leşê çepê beşdarî bipeyivin. Seke ku li description of this type of connection, lê di hin tabloyên nav HTMLê da heye.

Amadekarîya maseyên pêwîst

Ji bo nimûne, di nav HTMLê da me, ye, agahiyên li ser gelê û sîteya rast xwe li wir. Gelan (kes), Realty (sîteya rast), Realty_peoples (têkiliyên sifrê, kesên ku ji kîjan malê ye ji): Nasname li ser sê maseyên bingeha. Gavekî daneyên jêr profîlek tabloyên ku ji xelkê:

gelên

id

L_name

F_name

Middle_name

Birthday

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alexander

Federovich

04/30/1964

4

Annina

evîn

P.

31.12.1989

5

Gerasimovsky

hêvî

P.

14.03.1992

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

7

Sukhanovskaya

Juriyê

A.

09/25/1976

8

Sukhanovskaya

Julia

Y.

01.10.2001

sîteya û Paşnav:

Realty

id

navnîşan

1

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

2

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

3

Arkhangelsk herêmê, Severodvinsk, st. Lenîn, d. 134, q. 85

4

Arkhangelsk herêmê, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

5

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

Têkiliyên gelê - property:

Realty_peoples

id_peoples

id_realty

type

7

3

xwedîtîya hevpar Total

8

3

xwedîtîya hevpar Total

3

5

mal

7

1

mal

5

4

parçeyên Common

6

4

parçeyên Common

Çepgir beşdarî (Sql) - Description

dikere çepê ve nabe.Hevoksaziya jêr e:

Table_A LEFT JOIN table_B [{ON pêveber} | {KARANÎNA spisok_ bi tolbtsov}]

Û puxt dike wiha ne:

Û vê ramanê jî wekî "Select All, bê cudahî, xeta Table A û B Table ji bo nîşandanê tenê dama hevcotî yên sererast de pêveber dikin. Ger ser sifrê li ser sifrê string ya ji bo cotên A hate dîtin, piştre tije stûnên ku di encamê Null - nirxên ".

Pirî caran, gava ku pêwendiyê bi xwe ye ku li ser, bi kar tê bikaranîn, bi tenê dema ku navên column, ku plan ji bo girêdana bi eynî ne.

Çep beşdarî - wergerandî yên bikaranîna

Bi girêdana bi ya çepê de em dikarin bibînin, hemû kes ji lîsteya eger Gelan malê heye. Ji bo vê jî li milê çepê beşdarî nimûne Jêpirskirina SQL:

Gelên SELECT. *, Realty_peoples.id_realty, Realty_peoples.type

JI Gelan LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples;

Bi encamên jêrîn:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

type

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alexander

Federovich

04/30/1964

5

mal

4

Annina

evîn

P.

31.12.1989

5

Gerasimovsky

hêvî

P.

14.03.1992

4

parçeyên Common

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

parçeyên Common

7

Sukhanovskaya

Juriyê

A.

09/25/1976

1

mal

7

Sukhanovskaya

Juriyê

A.

09/25/1976

3

xwedîtîya hevpar Total

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

xwedîtîya hevpar Total

Wek em dibînin, Ivanova Darya Pugin Vladislav û Anninoy Lyubovi No qeyd mafên sîteya rast.

Û dê çi em qebûl kir, bi bikar anîna hundir tevlî Inner beşdarî? Wek hûn dizanin, ku ew şikl û rêzikan non-lêhatî, da sê ji testa dawî jî me bi hêsanî dê werin betalkirin:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

type

3

Evgenin

Alexander

Federovich

04/30/1964

5

mal

5

Gerasimovsky

hêvî

P.

14.03.1992

4

parçeyên Common

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

parçeyên Common

7

Sukhanovskaya

Juriyê

A.

09/25/1976

1

mal

7

Sukhanovskaya

Juriyê

A.

09/25/1976

3

xwedîtîya hevpar Total

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

xwedîtîya hevpar Total

Ev wisa diyar e ku guhertoya duyemîn jî digel şert û mercên ji pirsgirêka me. Lê belê, heke em dest bi rêz li ser din, û sifrê din, sê kes ji encama ji xwe paşde çûye. Çep û Rastê girêdana vê yekê jî, di pratîkê de, dema ku yekbûneke Tabloyên multiple çiqas bêtir caran tên bikaranîn ji Inner bibin.

Dê berdewam binêrin li ser milê çepê wergerandî sql bibin. Pêvekirina sifrê bi navnîşanên malên me dike:

Gelên SELECT. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address

JI gelan

LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples

LEFT JOIN Realty ON Realty.id = Realty_peoples.id_realty

Niha em dest bi tenê ferhenga a qanûnê, di heman demê de jî navnîşana sîteya rast:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

type

navnîşan

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alexander

Federovich

04/30/1964

5

mal

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

4

Annina

evîn

P.

31.12.1989

5

Gerasimovsky

hêvî

P.

14.03.1992

4

parçeyên Common

Arkhangelsk herêmê, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

parçeyên Common

Arkhangelsk herêmê, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

7

Sukhanovskaya

Juriyê

A.

09/25/1976

3

xwedîtîya hevpar Total

Arkhangelsk herêmê, Severodvinsk, st. Lenîn, d. 134, q. 85

7

Sukhanovskaya

Juriyê

A.

09/25/1976

1

mal

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

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

xwedîtîya hevpar Total

Arkhangelsk herêmê, Severodvinsk, st. Lenîn, d. 134, q. 85

Çep beşdarî - bikaranîna tîpîk ên error: sifrê pêvajoya kirarî ya nederbasdar

sedema bingehîn ên li derve çepê beşdarî maseyên, du:

  1. Eger bi fermana maseyên ji bo ku daneyên ji dest da hate hilbijartin.
  2. Where şaşiyên ku bi bikaranîna a query bi beşdarî maseyên.

Şaşiya yekemîn binêrin. Berî hingî her pirsgirêkê divê bi zelalî fêm kir, ku em çi dixwazin ji bo di dawiyê de bi dest bixin. Di vê mînaka li jor, em birin her yek yek ji wan kesan, di heman demê de bi temamî bi agahiyên li ser hêmanê di bin hejmara 2, ku xwediyê nehat dîtin ji dest da.

Eger em li tabloyên di query û li hinek cihan de meşî, û dê bi dest «... From Realty hiştin beşdarî Gelan ...» tu kes malê, em ê ji dest dane, hûn ne li ser hev dê ji gel re bêjin.

Lê ne bê tirs û bi girêdana çepê, vedigerin full ji derve ye, ya ku di encam û lêhatî û bi xetên lêhatî di nav de.

Piştî ku hemû, di volume yên test e gelek caran pir mezin, û welat zêde di rastiyê de bêkêr e. Ya herî sereke - ku karibin bibînin ka tu dixwazî ji bo bidestxistina encamê: hemû gel bi lîsteyek ji malê License de derbasdar xwe an jî hemû lîsteya malê bi xwediyên wan (eger tu).

Çep beşdarî - bikaranîna tîpîk ên error: Daxwaza rast e, dema danîna şert û mercên li ku derê

The error duyemîn jî bi windakirina daneya têkildar, û her tim di cih de, xuya ne.

De em herin back to ya daxwazkirî dema ku em hiştin bi rêya pêwendiyên welat ji bo hemû xelkê de û mal û milkê heyî wan stand. Bi bîr bîne li jêr bi çepê beşdarî nimûne sql:

JI Gelan LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples;

Difikirin, em dixwazin ji bo zelalkirina bi daxwaz û nizane bi encam li welat, li cihê ku type of qanûna - "babet". Eger em bi tênê bişiyênê, bi kar hiştin, tevlî sql, nimûneyeke ji rewşa jêr e:

...

Where type <> "babet"

em dê daneyên li ser kesên ku xwedî ti malê, ji ber ku Null nirxa null ye rêje ne wiha winda bike:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

type

5

Gerasimovsky

hêvî

P.

14.03.1992

4

parçeyên Common

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

parçeyên Common

7

Sukhanovskaya

Juriyê

A.

09/25/1976

3

xwedîtîya hevpar Total

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

xwedîtîya hevpar Total

Ji bo pêşî li şaşiyên ji bo vê yekê diqewimin, ev herî baş e ji bo danîna rewşa hilbijartinê di cih de li ser girêdana. Em pêşniyar dikin ji bo ku li jêr bi milê çepê beşdarî nimûne sql.

Gelên SELECT. *, Realty_peoples.id_realty, Realty_peoples.type

JI gelan

LEFT JOIN Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples Û type <> "babet")

Di encamê de wê bibin wiha ne:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

type

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alexander

Federovich

04/30/1964

4

Annina

evîn

P.

31.12.1989

5

Gerasimovsky

hêvî

P.

14.03.1992

4

parçeyên Common

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

parçeyên Common

7

Sukhanovskaya

Juriyê

A.

09/25/1976

3

xwedîtîya hevpar Total

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

xwedîtîya hevpar Total

Bi vî awayî, piştî danê çepê beşdarî nimûne sql, em qebûl lîsteya hemû gelê me, raperîn din, yek ji van milkan di / xwedîtîya hevpar dadvanî.

Wek encam, ez dixwazim careke din destnîşan kir ku test ji tu agahî ji nav HTMLê da heye divê bi berpirsyar bên avêtin. Gelek detayên vekirin, li ber me bi çepê beşdarî nimuneya sql, daxuyanî yên ku yek - berî ku tu dest bi nivîsandina heta query bingehîn, tu divê bi baldarî ji bo fêm bikin ka em dixwazin di dawiyê de bistînin. Bextê te xweş bî

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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