Komputer, Programming
Kénca gabung (SQL) - conto, anu jentre, ngamangpaatkeun kasalahan
Dina sagala database relational nyata, kabeh informasi anu disebarkeun dina tabel misah. Loba tabel nu diatur dina skéma komunikasi saling. Sanajan kitu, kalayan bantuan SQL queries éta rada mungkin nempatkeun tumbu antara data, teu study dina sirkuit. Hal ieu dilakukeun ku ngajalankeun sambungan gabung, nu ngidinan Anjeun pikeun ngawangun hubungan antara sagala Jumlah tabel, komo nyambung informasi sahingga bisa hirup kalawan disparate.
artikel ieu bakal ngobrol husus ngeunaan luar kénca gabung. Sateuacan lajengkeun kana pedaran tipe ieu sambungan, nambahan sababaraha tabel databés.
Nyiapkeun tabél perlu
Contona, dina database urang, aya informasi ngeunaan jalma jeung real estate maranéhanana. Kasimpulan dumasar kana tilu tabel: bangsa (urang), Realty (real estate), Realty_peoples (hubungan tabel, jalma anu ti naon harta milik). Nganggap data di handap disimpen dina tabél di urang:
bangsa | ||||
id | L_name | F_name | Middle_name | tepang warsi |
1 | Ivanova | daria | B. | 07/16/2000 |
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 |
3 | Evgenin | Alexander | Federovich | 04/30/1964 |
4 | Annina | bogoh | P. | 31.12.1989 |
5 | Gerasimovsky | harepan | P. | 14.03.1992 |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 |
7 | Sukhanovskaya | juri | 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 | Wewengkon Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
4 | Wewengkon Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
5 | Arkhangelsk, PL. Terekhina, d. 89, q. 13 |
Hubungan urang - sipat:
Realty_peoples | ||
id_peoples | id_realty | ngetik |
7 | 3 | Total kapamilikan gabungan |
8 | 3 | Total kapamilikan gabungan |
3 | 5 | harta |
7 | 1 | harta |
5 | 4 | bagian umum |
6 | 4 | bagian umum |
Ditinggalkeun gabung (SQL) - Description
sanyawa ditinggalkeun boga rumpaka di handap ieu:
Table_A ditinggalkeun gabung table_B [{ON predikat} | {Maké spisok_ kalawan tolbtsov}] |
Sarta schematically saperti kieu:
Jeung éksprési ieu ditarjamahkeun salaku "Pilih Sadaya, tanpa mahiwal, garis Table A jeung Table B pikeun nembongkeun mung barisan cocog ngeunaan predikat nu. Mun tabél ieu kapanggih dina tabel string keur pasang A, teras eusian kolom anu dihasilkeun hypothesis - nilai ".
Paling sering, nalika sambungan ditinggalkeun dituduhkeun ON, ngagunakeun ieu dipaké ukur nalika ngaran kolom, anu geus rencanana nyieun sambungan anu sarua.
Kénca gabung - conto pamakéan
Jeung sambungan tina kénca urang bisa ningali, sadaya jalma ti daftar lamun aya milik bangsa. Jang ngalampahkeun ieu kénca gabung SQL conto query:
Bangsa pilih. *, Realty_peoples.id_realty, Realty_peoples.type FROM bangsa tinggaleun gabung Realty_peoples ON Peoples.id = Realty_peoples.id_peoples; |
Kalawan hasil di handap:
Query1 | ||||||
id | L_name | F_name | Middle_name | tepang warsi | id_realty | ngetik |
1 | Ivanova | daria | B. | 07/16/2000 | ||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | harta |
4 | Annina | bogoh | P. | 31.12.1989 | ||
5 | Gerasimovsky | harepan | P. | 14.03.1992 | 4 | bagian umum |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagian umum |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 1 | harta |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total kapamilikan gabungan |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kapamilikan gabungan |
Salaku urang tingali, Ivanova Darya Pugin Vladislav na Anninoy Lyubovi No didaptarkeun hak real estate.
Jeung naon bakal kami geus narima, maké gabung hiji jero Batin gabung? Anjeun terang, éta heunteu ngasupkeun barisan non-cocog, jadi tilu kaluar tina sampel final kami bakal saukur jadi turun:
Query1 | ||||||
id | L_name | F_name | Middle_name | tepang warsi | id_realty | ngetik |
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | harta |
5 | Gerasimovsky | harepan | P. | 14.03.1992 | 4 | bagian umum |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagian umum |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 1 | harta |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total kapamilikan gabungan |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kapamilikan gabungan |
Ieu bakal sigana nu versi kadua ogé meets kaayaan masalah urang. Sanajan kitu, lamun urang ngawitan ngagantelkeun kana sejen, sarta méja sejen, tilu urang ti hasilna geus irretrievably Isro. Kituna, dina prakna, nalika ngagabungkeun sababaraha tabel leuwih mindeng dipaké Kénca jeung Katuhu sambungan ti Batin gabung.
Bakal neruskeun neuteup ka kénca gabung conto SQL. Ngagantelkeun hiji méja kalayan alamat imah urang:
Bangsa pilih. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address FROM bangsa Ditinggalkeun gabung Realty_peoples ON Peoples.id = Realty_peoples.id_peoples Ditinggalkeun gabung Realty ON Realty.id = Realty_peoples.id_realty |
Ayeuna urang meunang teu ukur jenis hukum, tapi ogé alamat tina real estate:
Query1 | |||||||
id | L_name | F_name | Middle_name | tepang warsi | id_realty | ngetik | alamat |
1 | Ivanova | daria | B. | 07/16/2000 | |||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | |||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | 5 | harta | Arkhangelsk, PL. Terekhina, d. 89, q. 13 |
4 | Annina | bogoh | P. | 31.12.1989 | |||
5 | Gerasimovsky | harepan | P. | 14.03.1992 | 4 | bagian umum | Wewengkon Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagian umum | Wewengkon Arkhangelsk, Novodvinsk, ul. Proletarshaya, d. 16, q. 137 |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total kapamilikan gabungan | Wewengkon Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 1 | harta | Arkhangelsk, ul. Voronin, d. 7, kv.6 |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kapamilikan gabungan |
Wewengkon Arkhangelsk, Severodvinsk, st. Lenin, d. 134, q. 85 |
Kénca gabung - pamakéan has kasalahan: tabel prosedur sah
kasalahan dasar dijieun di luar kénca gabung tabel, dua:
- Neuleu dipilih Urutan tabel pikeun nu data ieu leungit.
- Dimana kasalahan nalika maké query kalawan gabung tabel.
Mertimbangkeun kasalahan munggaran. Saacanna putusan masalah sagala kudu jelas dipikaharti yén naon urang rék meunang di tungtungna. Dina conto ieu di luhur, urang nyandak unggal tunggal salah sahiji jalma, tapi lengkep leungit inpo ngeunaan objek dina jumlah 2, anu boga teu kapanggih.
Mun urang dipindahkeun tabél dina pamundut di sababaraha tempat, sarta bakal mimitian ku «... Ti Realty ditinggalkeun gabung bangsa ...» sagala salah milik, urang moal bakal leungit, anjeun moal nyaritakeun ngeunaan jalma.
Tapi teu jadi mamang tina sambungan kénca, pindah ka pinuh éksternal, nu geus kaasup dina hasil tur cocog, jeung moal ka garis cocog.
Barina ogé, volume sampel mangrupakeun sering kacida gedéna, sarta data tambahan sabenerna gunana. Hal utama - keur angka kaluar naon rék meunang hasilna: sadaya jalma kalawan daptar hak milik sadia maranéhanana atawa daptar harta sakabéh kalawan boga maranéhanana (lamun sagala).
Kénca gabung - pamakéan has kasalahan: Request bener lamun netepkeun kaayaan di mana nu
Kasalahan kadua ogé dikaitkeun kalayan rugi data, sarta henteu salawasna geuwat semu.
Hayu urang balik deui ka pamundut teh lamun urang tinggaleun via sambungan narima data pikeun sakabeh jalma jeung harta aya maranéhanana. Inget di handap kalawan kénca gabung conto SQL:
FROM bangsa tinggaleun gabung Realty_peoples ON Peoples.id = Realty_peoples.id_peoples; |
Anggap we hayang netelakeun pamundut jeung henteu kaluaran data, dimana tipe hukum - "Harta". Mun urang ngan saukur append, ngagunakeun ditinggalkeun gabung SQL, conto kaayaan di handap:
...
Dimana tipe <> "Harta" |
urang bakal leungit data dina jalma anu teu boga harta, sabab nilai null hypothesis henteu dibandingkeun saperti kieu:
Query1 | ||||||
id | L_name | F_name | Middle_name | tepang warsi | id_realty | ngetik |
5 | Gerasimovsky | harepan | P. | 14.03.1992 | 4 | bagian umum |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagian umum |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total kapamilikan gabungan |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kapamilikan gabungan |
Pikeun nyegah kasalahan tina kajadian pikeun alesan ieu, éta pangalusna pikeun ngeset kaayaan Pilihan langsung kana sambungan. Urang ngasongkeun mertimbangkeun di handap kalawan kénca gabung conto SQL.
Bangsa pilih. *, Realty_peoples.id_realty, Realty_peoples.type FROM bangsa Ditinggalkeun gabung Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples AND tipe <> "Harta") |
hasilna bakal kieu:
Query1 | ||||||
id | L_name | F_name | Middle_name | tepang warsi | id_realty | ngetik |
1 | Ivanova | daria | B. | 07/16/2000 | ||
2 | Pugin | Vladislav | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | Alexander | Federovich | 04/30/1964 | ||
4 | Annina | bogoh | P. | 31.12.1989 | ||
5 | Gerasimovsky | harepan | P. | 14.03.1992 | 4 | bagian umum |
6 | Gerasimovsky | Oleg | Albertovich | 01/29/1985 | 4 | bagian umum |
7 | Sukhanovskaya | juri | A. | 09/25/1976 | 3 | Total kapamilikan gabungan |
8 | Sukhanovskaya | Julia | Y. | 01.10.2001 | 3 | Total kapamilikan gabungan |
Ku kituna, ku nuturkeun basajan ka kénca gabung conto SQL, urang nampi daptar sakabeh jalma, pindah salajengna, salah sahiji pasipatan ieu dina equity / kapamilikan gabungan.
Salaku Kacindekan Abdi hoyong ngantebkeun sakali deui yen sampel sagala informasi ti pangkalan data perlu dicokot responsibly. Loba nuances dibuka di hareupeun rahayat kami kalawan kénca gabung conto basajan SQL, kieu nu salah - sateuacan Anjeun ngawitan nyerat malah query dasar, Anjeun kedah taliti ngartos naon urang rék meunang di tungtungna. Good tuah!
Similar articles
Trending Now