Komputer, Programming
Ngiwa nggabungake (SQL) - conto, gambaran rinci, nggunakake kesalahan
Ing sembarang database hubungan nyata, kabeh informasi disebarake ing Tabel kapisah. Akeh tabel sing kasebut ing rencana komunikasi karo saben liyane. Nanging, karo bantuan saka SQL pitakon iku cukup bisa kanggo nyelehake link antarane data, ora ditempelake ing sirkuit. Iki wis rampung dening Performing sambungan nggabungake, sing ngijini sampeyan kanggo mbangun sesambetan antarane sing nomer tabel, lan malah nyambung informasi ketoke disparate.
Artikel iki bakal pirembagan khusus bab njaba kiwa nggabungake. Sadurunge nerusake kanggo gambaran saka jinis sambungan, nambah ing sawetara database.
Nyiyapake ing tabel perlu
Contone, ing database kita, ana informasi bab wong lan real estate sing. Summary adhedhasar telung tabel: Peoples (wong), Realty (real estate), Realty_peoples (sesambetan meja, wong sing saka apa property belongs kanggo). Nganggep Data iki disimpen ing tabel iki menawa saka wong:
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 | Alexander | Federovich | 04/30/1964 |
4 | Annina | tresna | P. | 31.12.1989 |
5 | Gerasimovsky | Mugi | P. | 14.03.1992 |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 |
Real Estate:
Realty | |
id | alamat |
1 | Arkhangelsk, ul. Voronin, d. 7, kv.6 |
2 | Arkhangelsk, ul. Severodvinskaya, d. 84, q. 9 BR. 5 |
3 | wilayah Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
4 | wilayah Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
5 | Arkhangelsk, pl. Terekhina, d. 89, q. 13 |
Relations wong - properti:
Realty_peoples | ||
id_peoples | id_realty | jinis |
7 | 3 | Total kepemilikan peserta |
8 | 3 | Total kepemilikan peserta |
3 | 5 | property |
7 | 1 | property |
5 | 4 | bagean umum |
6 | 4 | bagean umum |
Ngiwa nggabungake (SQL) - katrangan
senyawa kiwa nduweni ukara ing ngisor iki:
Table_A kiwa NGGABUNGA table_B [{ON predikat} | {USING spisok_ karo tolbtsov}] |
Lan schematically minangka nderek:
Lan expression iki minangka "Pilih Kabeh, tanpa istiméwa, baris saka Tabel A lan Table B ngatonake larik cocog predikat ing. Yen meja iki dipunpanggihi ing tabel senar pasangan A, banjur isi kolom asil Null - nilai ".
Paling asring, nalika sambungan kiwa dituduhake ON, nggunakake digunakake mung nalika jeneng asli, kang ngrancang kanggo nggawe sambungan sing padha.
Ngiwa nggabungake - conto panggunaan
Kanthi sambungan saka kiwa kita bisa ndeleng, kabeh wong saka dhaftar yen ana property Peoples. Kanggo nindakake iki ing kiwa nggabungake dba conto query:
Peoples Pilih. *, Realty_peoples.id_realty, Realty_peoples.type Saka Peoples kiwa NGGABUNGA Realty_peoples ON Peoples.id = Realty_peoples.id_peoples; |
Kanthi asil ing ngisor iki:
Query1 | ||||||
id | L_name | F_name | Middle_name | Birthday | id_realty | jinis |
1 | Ivanova | Daria | B. | 07/16/2000 | ||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | property |
4 | Annina | tresna | P. | 31.12.1989 | ||
5 | Gerasimovsky | Mugi | P. | 14.03.1992 | 4 | bagean umum |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagean umum |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 | 1 | property |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 | 3 | Total kepemilikan peserta |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kepemilikan peserta |
Kita waca, Ivanova Darya Pugin Vladislav lan Anninoy Lyubovi Ora kedhaftar hak real estate.
Lan apa kang bakal kita wis ditampa, nggunakake gabung utama Inner nggabungake? Sing ngerti, iku sastra suluk larik non-cocog, supaya telu metu saka sampel final kita bakal mung dropped:
Query1 | ||||||
id | L_name | F_name | Middle_name | Birthday | id_realty | jinis |
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | property |
5 | Gerasimovsky | Mugi | P. | 14.03.1992 | 4 | bagean umum |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagean umum |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 | 1 | property |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 | 3 | Total kepemilikan peserta |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kepemilikan peserta |
Punika badhe koyone sing versi liya uga meets kondisi kita masalah. Nanging, yen kita wiwiti masang ing liyane, lan meja liyane, wong telu saka asil wis rapopo musna. Mulane, ing laku, nalika nggabungke kaping tabel luwih kerep digunakake Kiri lan tengen sambungan saka Inner nggabungake.
Bakal terus kanggo katon ing sisih kiwa nggabungake conto dba. Pasang Tabel karo alamat omah kita:
Peoples Pilih. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address saka Peoples KIRI NGGABUNGA Realty_peoples ON Peoples.id = Realty_peoples.id_peoples KIRI NGGABUNGA Realty ON Realty.id = Realty_peoples.id_realty |
Saiki kita njaluk ora mung ukum, nanging uga alamat real estate:
Query1 | |||||||
id | L_name | F_name | Middle_name | Birthday | id_realty | jinis | alamat |
1 | Ivanova | Daria | B. | 07/16/2000 | |||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | |||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | property | Arkhangelsk, pl. Terekhina, d. 89, q. 13 |
4 | Annina | tresna | P. | 31.12.1989 | |||
5 | Gerasimovsky | Mugi | P. | 14.03.1992 | 4 | bagean umum | wilayah Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagean umum | wilayah Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 | 3 | Total kepemilikan peserta | wilayah Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 | 1 | property | Arkhangelsk, ul. Voronin, d. 7, kv.6 |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kepemilikan peserta |
wilayah Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
Ngiwa nggabungake - nggunakake khas kesalahan: Tabel prosedur bener
kesalahane dhasar digawe ing njaba kiwa nggabungake tabel, loro:
- Bener milih urutan tabel sing data ilang.
- Where kasalahan nalika penjaluk karo nggabungake tabel.
Coba kesalahan pisanan. Sadurunge kaputusan saka masalah kudu cetha mangertos sing apa kita arep njaluk ing mburi. Ing conto iki ndhuwur, kita njupuk saben siji saka wong, nanging rampung ilang informasi bab obyek ing nomer 2, kang pemilik ora ketemu.
Yen kita pindhah ing tabel ing query ing sawetara panggonan, lan bakal miwiti karo «... From Realty kiwa nggabungake Peoples ...» sembarang siji kagungan, mesthi aku ora padha ilang, sampeyan ora ngomong bab wong.
Nanging ora dadi wedi saka sambungan kiwa, ngalih menyang lengkap external, kang kalebu ing asil lan cocog, lan ora ing garis cocog.
Sawise kabeh, ing volume saka sampel asring banget gedhe, lan data liyane iku bener ora ana guna. Wangsulan: Bab ingkang utama - kanggo tokoh metu apa sing pengin njaluk asil: kabeh wong karo dhaptar property kasedhiya utawa ing dhaftar kagungan kabeh karo sing nduweni (yen).
Ngiwa nggabungake - nggunakake khas kesalahan: Request iku bener nalika nyetel kahanan ing Endi
Kesalahan liya uga digandhengake karo mundhut saka data, lan ora tansah langsung nyoto.
Ayo padha bali menyang query menawi ngiwa liwat sambungan ditampa data kanggo kabeh wong lan bisa ana sing. Elingi ing ngisor iki karo kiwa nggabungake conto dba:
Saka Peoples kiwa NGGABUNGA Realty_peoples ON Peoples.id = Realty_peoples.id_peoples; |
Upaminipun kita pengin njlentrehake request lan ora output data, ngendi jinis hukum - "Property". Yen kita mung append, nggunakake kiwa nggabungake dba, conto kawontenan ing ngisor iki:
...
Where jinis <> "Property" |
kita bakal kelangan data ing wong sing ora duwe properti, amarga Nilai null Null ora dibandhingake minangka nderek:
Query1 | ||||||
id | L_name | F_name | Middle_name | Birthday | id_realty | jinis |
5 | Gerasimovsky | Mugi | P. | 14.03.1992 | 4 | bagean umum |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagean umum |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 | 3 | Total kepemilikan peserta |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kepemilikan peserta |
Kanggo nyegah kasalahan saka kedadean iki alesan, iku paling apik kanggo nyetel kawontenan pilihan langsung marang sambungan. We suggest kanggo nimbang ing ngisor iki karo kiwa nggabungake conto dba.
Peoples Pilih. *, Realty_peoples.id_realty, Realty_peoples.type saka Peoples KIRI NGGABUNGA Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples lan jinis <> "Property") |
Asil bakal minangka nderek:
Query1 | ||||||
id | L_name | F_name | Middle_name | Birthday | id_realty | jinis |
1 | Ivanova | Daria | B. | 07/16/2000 | ||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | ||
4 | Annina | tresna | P. | 31.12.1989 | ||
5 | Gerasimovsky | Mugi | P. | 14.03.1992 | 4 | bagean umum |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagean umum |
7 | Sukhanovskaya | hakim | A. | 09/25/1976 | 3 | Total kepemilikan peserta |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kepemilikan peserta |
Mangkono, dening iki prasaja ngiwa nggabungake conto dba, aku nampa dhaptar kabeh wong, obah luwih, siji saka situs iki ing usaha / kepemilikan peserta.
Minangka kesimpulan aku kaya kanggo nandheske maneh sing sampel samubarang informasi saka basis data mau kudu dijupuk tanggung jawab. Akeh nuansa kabuka ing ngarep kita karo kiwa nggabungake conto prasaja dba, panjelasan kang siji - sadurunge miwiti kanggo nulis pitakonan dhasar, sampeyan kudu kasebut kanthi teliti, mangertos apa kita arep njaluk ing mburi. Good luck!
Similar articles
Trending Now