Coimpiutairean, Prò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à:
- Ceart a thaghadh ann an òrdugh na bùird airson a bheil dàta a chall.
- 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