CoimpiutaireanPrògramadh

Left còmhla (SQL) - mar eisimpleir, an t-iomradh mionaideach, a 'cleachdadh an error

Ann sam bith dàimh fìor stòr-dàta, a h-uile fiosrachadh a sgaoileadh air leth a 'bhòrd. Tha mòran de na clàir air an cur a mach ann an sgeama conaltraidh le chèile. Ach, le cuideachadh Sql ceistean tha e gu math comasach a chur an ceangal eadar an dàta, nach freumhaichte ann an cuairt. Tha seo ga dhèanamh le bhith a 'dèanamh ceangal còmhla, a leigeas leat a thogail an dàimh eadar àireamh sam bith de chlàran, agus fiù' s cho sgapte 'ceangal fiosrachaidh.

Tha an aiste seo a 'bruidhinn gu sònraichte mu dheidhinn an làimh chlì a-muigh còmhla. Mus adhart gu tuairisgeul an seòrsa seo a ceangal, ris an stòr-dàta ann an cuid de na bùird.

Ag ullachadh a dh'fheumar a bùird

Mar eisimpleir, ann an stòr-dàta againn, tha fiosrachadh ann mu dheidhinn daoine agus an oighreachd fìor. Geàrr-chunntas stèidhichte air na trì bùird: Peoples (dhaoine), Realty (oighreachd fìor), Realty_peoples (Clàr dàimhean, daoine a tha bho na seilbh a bhuineas do). A 'gabhail ris an dàta a leanas a stòradh anns na clàran nan daoine:

Peoples

id

L_name

F_name

Middle_name

Birthday

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alasdair

Federovich

04/30/1964

4

Annina

gràdh

P.

31.12.1989

5

Gerasimovsky

dòchas

P.

14.03.1992

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

7

Sukhanovskaya

diùraidh

A.

09/25/1976

8

Sukhanovskaya

Julia

Y.

01.10.2001

Fìor oighreachd:

Realty

id

seòladh

1

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

2

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

3

Arkhangelsk sgìre, Severodvinsk, st. Lenin, d. 134, q. 85

4

Arkhangelsk sgìre, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

5

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

Dàimh daoine - seilbh:

Realty_peoples

id_peoples

id_realty

-seòrsa

7

3

Total co-seilbh

8

3

Total co-seilbh

3

5

seilbh

7

1

seilbh

5

4

Common pàirtean

6

4

Common pàirtean

Left còmhla (Sql) - Tuairisgeul

Left compound sheantansan a leanas:

Table_A LÌ LÙIB table_B [{AIR predicate} | {CLEACHDADH spisok_ le tolbtsov}]

Agus schematically mar a leanas:

Agus tha an abairt seo eadar-theangachadh mar "na h-uile, gun a-mhàin, loidhne de Clàr Clàr A agus B a thaisbeanadh ach an sreathan a fhreagras air an predicate. Ma tha an clàr a chaidh a lorg ann an Clàr sreang airson càraidean A, agus an uair sin a 'lìonadh an thoradh air colbhan Null - luachan ".

As tric, nuair a dh'fhàg AIR ceangal a chomharrachadh, a 'cleachdadh a chleachdadh a-mhàin nuair a tha an colbh-ainmean, a tha air a phlanadh a dhèanamh an co-cheangal a tha an aon rud.

Left còmhla - eisimpleirean de chleachdadh

Leis a 'cheangal eadar an làimh chlì chì sinn, an sluagh uile bhon liosta ma tha Peoples seilbh. Gus seo a dhèanamh ann an làimh chlì còmhla sql ceiste mar eisimpleir:

Thaghadh Peoples. *, Realty_peoples.id_realty, Realty_peoples.type

FROM Peoples LÌ LÙIB Realty_peoples AIR Peoples.id = Realty_peoples.id_peoples;

Leis na toraidhean a leanas:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

-seòrsa

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alasdair

Federovich

04/30/1964

5

seilbh

4

Annina

gràdh

P.

31.12.1989

5

Gerasimovsky

dòchas

P.

14.03.1992

4

Common pàirtean

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common pàirtean

7

Sukhanovskaya

diùraidh

A.

09/25/1976

1

seilbh

7

Sukhanovskaya

diùraidh

A.

09/25/1976

3

Total co-seilbh

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Total co-seilbh

Mar a chì sinn, Ivanova Darya Pugin Vladislav agus Anninoy Lyubovi Chan eil clàraichte oighreachd fìor còraichean.

Agus dè a bhiodh a fhuair sinn, a 'cleachdadh an taobh a-staigh còmhla staigh còmhla? Mar a tha fhios agad, tha e dùnadh a-mach neo-a fhreagras air an sreathan, mar sin, a-mach à trì mu dheireadh againn shampall bhiodh dìreach a bhith a 'tuiteam:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

-seòrsa

3

Evgenin

Alasdair

Federovich

04/30/1964

5

seilbh

5

Gerasimovsky

dòchas

P.

14.03.1992

4

Common pàirtean

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common pàirtean

7

Sukhanovskaya

diùraidh

A.

09/25/1976

1

seilbh

7

Sukhanovskaya

diùraidh

A.

09/25/1976

3

Total co-seilbh

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Total co-seilbh

Tha e coltach gu bheil an dàrna dreach cuideachd a 'coinneachadh ri na cumhaichean againn duilgheadas. Ach, ma tha sinn a 'tòiseachadh a' cur a-steach air fear eile, agus fear eile a 'bhùird, trì daoine bho na thoradh air mar-thà irretrievably falbh. Mar sin, ann an cleachdadh, nuair còmhla ioma-bùird mòran nas tric a 'cleachdadh agus Left Right ceangal a-Staigh na ballrachd.

Leanaidh a 'coimhead air an làimh chlì còmhla sql eisimpleirean. Cuiribh a 'bhòrd le seòlaidhean ar taighean:

Thaghadh Peoples. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address

FROM Peoples

LÌ LÙIB Realty_peoples AIR Peoples.id = Realty_peoples.id_peoples

LÌ LÙIB Realty AIR Realty.id = Realty_peoples.id_realty

A-nis gheibh sinn a-mhàin Chan eil seòrsa de lagh, ach cuideachd a 'seòladh an oighreachd fìor:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

-seòrsa

seòladh

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alasdair

Federovich

04/30/1964

5

seilbh

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

4

Annina

gràdh

P.

31.12.1989

5

Gerasimovsky

dòchas

P.

14.03.1992

4

Common pàirtean

Arkhangelsk sgìre, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common pàirtean

Arkhangelsk sgìre, Novodvinsk, ul. Proletarshaya, d. 16, q. 137

7

Sukhanovskaya

diùraidh

A.

09/25/1976

3

Total co-seilbh

Arkhangelsk sgìre, Severodvinsk, st. Lenin, d. 134, q. 85

7

Sukhanovskaya

diùraidh

A.

09/25/1976

1

seilbh

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

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Total co-seilbh

Arkhangelsk sgìre, Severodvinsk, st. Lenin, d. 134, q. 85

Left pàirt a ghabhail - an cleachdadh àbhaisteach na mearachd: mì-dhligheach modh Clàr

Basic mearachdan air an dèanamh aig an làimh chlì a-muigh còmhla bùird, an dà:

  1. Ceart a thaghadh ann an òrdugh na bùird airson a bheil dàta a chall.
  2. Far a bheil mearachdan a thaobh a bhith a 'cleachdadh nuair a sheisich a' cheist a 'tighinn còmhla le clàran.

Beachdaich air a 'chiad mearachd. Mus deach co-dhùnadh sam bith a duilgheadas a bu chòir tuigsinn gu soilleir gu bheil na tha sinn ag iarraidh a dhol ann an deireadh. Anns an eisimpleir seo gu h-àrd, ghabh sinn a h-uile aon de na daoine, ach gu tur air chall am fiosrachadh mu na nì fo àireamh 2, d'an sealbhadair a lorg.

Ma ghluais sinn na clàir anns a 'cheist ann an cuid de dh'àiteachan, agus bhiodh a' tòiseachadh le «... Realty Bho chlì còmhla Peoples ...» aon sam bith seilbh, cha bhiodh sinn air chall, cha innse mu dhaoine.

Ach chan eil a bhith a 'cur eagal air an làimh chlì ceangal, atharrachadh gu làn a-muigh, a tha air a ghabhail a-steach anns na toraidhean agus na fhreagras air, agus nach' eil a fhreagras air lines.

Às dèidh na h-uile, an tomhas de shampall S tric mòr, agus a bharrachd air dàta a tha dha-rìribh gun fheum. Tha a 'phrìomh rud - a obraich a-mach dè tha sibh ag iarraidh thoradh air: na h-uile dhaoine le liosta aca ri fhaotainn seilbh no fad-seilbh liosta le sealbhadairean aca (ma sam bith).

Left pàirt a ghabhail - an cleachdadh àbhaisteach na mearachd: Iarrtas ceart nuair a tha suidheachadh na cumhaichean ann an Where

Tha an dara mearachd a tha cuideachd co-cheangailte ri call dàta, agus chan eil sinn daonnan follaiseach sa bhad.

Rachamaid air ais gu a 'cheist nuair a dh'fhàg sinn tro cheanglaichean dàta a fhuaradh airson an sluagh uile agus an seilbh a th' ann. Cuimhnich air na leanas le làimh chlì còmhla sql eisimpleir:

FROM Peoples LÌ LÙIB Realty_peoples AIR Peoples.id = Realty_peoples.id_peoples;

Creidsinn sinn ag iarraidh soilleireachadh air an iarrtas agus chan eil e toradh an dàta, far a bheil an seòrsa de lagh - "Property". Ma tha sinn dìreach append, a 'cleachdadh air fhàgail còmhla sql, eisimpleir de chumha a leanas:

...

Far a bheil seòrsa <> "Property"

bidh sinn a 'call an dàta air daoine aig nach eil seilbh, a chionn null luach Null nach eil an coimeas mar a leanas:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

-seòrsa

5

Gerasimovsky

dòchas

P.

14.03.1992

4

Common pàirtean

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common pàirtean

7

Sukhanovskaya

diùraidh

A.

09/25/1976

3

Total co-seilbh

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Total co-seilbh

Gus casg a chur mearachdan tachair airson an adhbhar seo, tha e nas fheàrr a chur air an taghadh air an staid anns a 'bhad an co-cheangal. Molamaid gu beachdachadh air na leanas ri an làimh chlì còmhla sql eisimpleir.

Thaghadh Peoples. *, Realty_peoples.id_realty, Realty_peoples.type

FROM Peoples

LÌ LÙIB Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples agus an seòrsa <> "Property")

Mar thoradh air mar a leanas:

Query1

id

L_name

F_name

Middle_name

Birthday

id_realty

-seòrsa

1

Ivanova

Daria

B.

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

Alasdair

Federovich

04/30/1964

4

Annina

gràdh

P.

31.12.1989

5

Gerasimovsky

dòchas

P.

14.03.1992

4

Common pàirtean

6

Gerasimovsky

Oleg

Albertovich

01/29/1985

4

Common pàirtean

7

Sukhanovskaya

diùraidh

A.

09/25/1976

3

Total co-seilbh

8

Sukhanovskaya

Julia

Y.

01.10.2001

3

Total co-seilbh

Mar sin, le bhith leantainn an sìmplidh air an làimh chlì còmhla sql eisimpleir, fhuair sinn liosta de na h-uile dhaoine, a 'gluasad air adhart, aon de na lotaichean sin ann an ceartas / co-seilbh.

Mar cho-dhùnadh, bu toigh leam a chur cudthrom air a-rithist a sampall de fiosrachadh sam bith bhon stòr-dàta a dh'fheumas a bhith air a thogail gu cùramach. Tha mòran nuances fhosgladh air ar beulaibh le làimh chlì còmhla sql sìmplidh, mar eisimpleir, a 'mìneachadh a h-aon - mus tòisich thu a' sgrìobhadh fiù 'cheist bhunaiteach, feumaidh tu gu faiceallach a' tuigsinn dè tha sinn ag iarraidh a dhol ann an deireadh. Beannachd leat

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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