OrdenagailuakProgramazioa

Ezker batu (SQL) - adibide bat, deskribapen zehatza, error erabilera

Edozein erlazional benetako datu-basea, informazio guztia mahai bereizi banatuta. taulak asko ezarritako elkarren komunikazio eskema batean. Hala ere, batez laguntzaz SQL kontsultak oso posible da, datuak, ez zirkuituan murgildurik arteko lotura bat jarri. Hau batu konexio bat, horri esker, edozein taulen kopuru arteko harreman bat eraikitzeko duzu, eta baita itxuraz desberdinak informazio konektatu eszenikoen egindako.

Artikulu hau, zehazki hitz egingo ezker kanpoaldeko batzeko buruz. konexio mota honen deskribapena jarraitu aurretik, gehitu datu-baseko taulak batzuetan.

Beharrezkoa taulak prestatzen

Adibidez, gure datu-basean, ez dago pertsona eta beren higiezinen buruzko informazioa da. Laburpena oinarritutako hiru mahai on: Pueblos (pertsona), Realty (higiezinen), Realty_peoples (taula harremanak, pertsonak zer-tik jabetza jabea da). Demagun jendearen taulak gordetzen dira datu hauek:

Herrien

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

maite

P.

31.12.1989

5

Gerasimovsky

espero

P.

14.03.1992

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

8

Sukhanovskaya

Julia

Y.

01.10.2001

Higiezinen:

Realty

id

helbidea

1

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

2

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

3

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

4

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

5

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

Harreman pertsona - Jabetza:

Realty_peoples

id_peoples

id_realty

mota

7

3

Guztira joint-jabetza

8

3

Guztira joint-jabetza

3

5

jabetza

7

1

jabetza

5

4

zati komunak

6

4

zati komunak

Ezker batu (SQL) - deskribapena

Ezker konposatu ondoko sintaxia ditu:

Table_A LEFT JOIN table_B [{predikatu ON} | {Spisok_ ERABILIZ tolbtsov batera}]

Eta eskematikoki honela:

Eta adierazpen hau "Aukeratu guztiak, salbuespenik gabe, A Table eta B Table-lerro bat datorren predikatu ilara baino ez erakustea nahi itzulita. mahai-katea taulan aurkitu bazen bikote bat, eta gero bete ondoriozko zutabeak Null - balioak ".

Gehienetan, noiz utzi konexio adierazten da ON, erabiliz soilik erabiltzen da zutabe izenak, eta hori aurreikusita konexioa egiteko berdinak dira.

Ezker batzeko - erabilera adibide

Ezkerreko konexio batera ikus dezakegu, zerrendako pertsona guztiak ez bada Herrien jabetza. Horretarako ezkerreko batu SQL kontsulta adibidea:

SELECT Herrien. *, Realty_peoples.id_realty, Realty_peoples.type

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

honako emaitza hauekin:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

mota

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alexander

Federovich

04/30/1964

5

jabetza

4

Annina

maite

P.

31.12.1989

5

Gerasimovsky

espero

P.

14.03.1992

4

zati komunak

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

zati komunak

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

1

jabetza

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

3

Guztira joint-jabetza

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Guztira joint-jabetza

ikusi dugun bezala, Ivanova Darya Pugin Vladislav eta Anninoy Lyubovi No erregistratuta higiezinen eskubide.

Eta zer egingo jaso dugu, barne batu Barne batu erabiliz? Dakizuenez, ez-etortze ilarek baztertzen, beraz, hiru gure azken lagina atera besterik ez litzateke izango jaitsi:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

mota

3

Evgenin

Alexander

Federovich

04/30/1964

5

jabetza

5

Gerasimovsky

espero

P.

14.03.1992

4

zati komunak

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

zati komunak

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

1

jabetza

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

3

Guztira joint-jabetza

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Guztira joint-jabetza

Badirudi bigarren bertsioa ere gure arazoa baldintzak betetzen dituela litzateke. Hala ere, beste batean erantsi hasten gara bada, eta beste taula bat, emaitza hiru pertsonek dagoeneko irretrievably desagertu. Beraz, praktikan, noiz mahai bat baino konbinatuz askoz maizago erabiltzen Ezker eta Eskuin Barne baino konexio batzeko.

ezkerrera begiratu sql adibide batu jarraituko du. Erantsi gure etxe helbideak taula bat:

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

Herrien FROM

LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples

LEFT JOIN Realty ON Realty.id = Realty_peoples.id_realty

Orain lege-mota bakarra, baina baita higiezinen helbidera lortuko dugu:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

mota

helbidea

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alexander

Federovich

04/30/1964

5

jabetza

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

4

Annina

maite

P.

31.12.1989

5

Gerasimovsky

espero

P.

14.03.1992

4

zati komunak

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

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

zati komunak

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

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

3

Guztira joint-jabetza

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

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

1

jabetza

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

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Guztira joint-jabetza

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

Ezker batzeko - error erabilera tipikoak: baliogabe prozedura taula

Ezkerreko kanpoaldeko berean egin oinarrizko akatsak batzeko mahaiak, bi:

  1. taulen ordena zein datu galdu zen behar bezala hautatua izan da.
  2. Non erroreekin kontsulta bat erabiltzen duzunean batu taulak.

Demagun lehen akatsa. arazorik erabakia hartu aurretik egin beharko da argi eta garbi ulertu behar du zer azkenean lortu nahi dugun. Adibide honetan, batez ere, jende bakar bat behin hartu genuen, baina erabat kopurua 2, horren jabea ez da aurkitu azpian objektuaren buruzko informazioa galdu.

taulak mugitu dugu leku batzuetan kontsulta bat ere bada, eta has litzateke «... From Realty ezker Herri batu ...» edozein jabetza bat, ez genuke galdu dute, ez duzu jendea kontatzeko.

Baina ez izan, ezker konexio beldur, full kanpoko, hau da, emaitzak eta bat datozen, eta ez da bat datorren lerroak sartuta aldatzeko.

Azken finean, lagin bolumena izaten da oso handia, eta datuak estra benetan alferrikakoa. Gauza nagusia - irudikatu zer emaitza lortu nahi duzun: pertsona guztien beren jabetza eskuragarri zerrenda bat edo haien jabeen jabetza osoan zerrendan (izanez gero) batera.

Ezker batzeko - error erabilera tipikoak: Eskaera zuzena da baldintzak ezartzeko Non hasi

Bigarren error Halaber datu galera lotutako, eta ez dira beti berehala itxurazko.

Goazen atzera kontsulta denean utzi dugun konexioak jaso bidez pertsona guztiak eta euren jabetza daturik. Gogoratu jarraian ekin ezker batu sql adibidea:

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

Demagun eskatuta argitu nahi dugu eta ez irteera datuak, ez du non lege mota - "Jabetza". dugu eransteko besterik baduzu, ezker erabiliz batu sql, honako baldintza adibide bat:

...

Non mota <> "Jabetza"

Nork jabetza ez, baita null balioa nulua ez da honela aldean jende datuak galdu egingo dugu:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

mota

5

Gerasimovsky

espero

P.

14.03.1992

4

zati komunak

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

zati komunak

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

3

Guztira joint-jabetza

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Guztira joint-jabetza

horregatik gertatzen Akatsak saihesteko, hobe da berehala hautaketa baldintza ezartzeko konexio gainean. Ezkerreko batera honako kontuan hartu batu sql adibidez proposatzen dugu.

SELECT Herrien. *, Realty_peoples.id_realty, Realty_peoples.type

Herrien FROM

LEFT JOIN Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples ETA mota <> "Jabetza")

Emaitza honako hau izango da:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

mota

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alexander

Federovich

04/30/1964

4

Annina

maite

P.

31.12.1989

5

Gerasimovsky

espero

P.

14.03.1992

4

zati komunak

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

zati komunak

7

Sukhanovskaya

Epaimahaia

A.

09/25/1976

3

Guztira joint-jabetza

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Guztira joint-jabetza

Horrela, ezkerrera sinpleak jarraituz by batu sql Adibidez, pertsona guztien zerrenda bat jaso dugu, gehiago mugitzen, ekitatea / joint titulartasuna batean propietate horietako bat.

Ondorioz dut berriro ere basetik edozein informazio lagin bat behar arduraz hartu behar azpimarratu nahi nuke. Gurekin aurrean ezker batera ireki zuten ñabardura asko batu sql sinple adibidez, azalpen horren bateko - nahiz oinarrizko kontsultaren idazten hasi aurretik, behar arretaz zer den azkenean lortu nahi duguna ulertzeko. Zorte ona izan!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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