SQL PRIDRUŽIVANJE
SQL spajanje koristi se za dohvaćanje ili kombiniranje podataka (redaka ili stupaca) iz dvije ili više tablica na temelju definiranih uvjeta.
Tablica 1: Redoslijed
ID narudžbe | ID kupca | Naziv narudžbe | Ime proizvoda |
---|---|---|---|
12025 | 101 | Petar | ABC |
12030 | 105 | Robert | XYX |
12032 | 110 | James | XYZ |
12034 | 115 | Andrija | PQR |
12035 | 120 | Matej | AAA |
Tablica 2: Kupac
ID kupca | Ime kupca | Zemlja |
---|---|---|
100 | neuredno | Maxico |
101 | Princ | Tajvan |
103 | Marija Fernandez | purica |
105 | Jasmin | Pariz |
110 | Faf Weasel | Indonezija |
120 | Rimska raketa | Rusija |
Sada imamo dva stola Narudžba i Kupac . Tamo je ID kupca stupac zajednički u objema tablicama. Dakle, napišite SQL upit za definiranje općeg odnosa za odabir zapisa podudaranja iz obje tablice.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
Nakon izvršenja gore navedenog SQL upita, proizvodi sljedeći izlaz:
ID narudžbe | Ime kupca | Zemlja | Ime proizvoda |
---|---|---|---|
12025 | Princ | Tajvan | ABC |
12030 | Jasmin | Pariz | XYX |
12032 | Faf Weasel | Indonezija | XYZ |
12035 | Rimska raketa | Rusija | AAA |
Vrste SQL spajanja
U SQL-u se koriste različite vrste spojeva:
- Unutarnje spajanje / jednostavno spajanje
- Lijevi vanjski spoj / Lijevi spoj
- Desni vanjski spoj / Desni spoj
- Potpuni vanjski spoj
- Križni spoj
- Self Pridružite se
Unutarnje spajanje
Unutarnje spajanje koristi se za odabir svih odgovarajućih redaka ili stupaca u obje tablice ili sve dok je definirani uvjet valjan u SQL-u.
Sintaksa:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Unutarnje spajanje možemo prikazati kroz Vennov dijagram na sljedeći način:
Tablica 1: Studenti
Studentska iskaznica | Ime studenta | Predmet | ID učitelja |
---|---|---|---|
101 | Aleksandra | informatika | T201 |
102 | Charles | Ekonomija | T202 |
103 | Tom Cruise | informatika | T201 |
104 | Aaron Finch | Elektronika | T203 |
105 | Sjeme Bajoff | Web dizajn | T204 |
106 | Christopher | Engleska književnost | T205 |
107 | Traper | Modni dizajner | T206 |
Tablica 2: Učitelji
ID učitelja | Ime učitelja | E-pošta učitelja |
---|---|---|
T201 | gospodine Davis | [e-mail zaštićen] |
T202 | gospođo Jonas | [e-mail zaštićen] |
T201 | gospodine Davis | [e-mail zaštićen] |
T204 | gospođo Lopez | [e-mail zaštićen] |
T205 | gospođo Wiley | [e-mail zaštićen] |
T206 | Mr Bean | [e-mail zaštićen] |
Imamo dva stola: Studenti i Učitelji Stolovi. Napišimo SQL upite za spajanje tablice pomoću UNUTARNJI SPOJ kako slijedi:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
Nakon izvršenja upita, proizvodi se donja tablica.
Prirodni spoj
To je tip unutarnjeg tipa koji spaja dvije ili više tablica na temelju istog naziva stupca i ima isti tip podataka prisutan u obje tablice.
Sintaksa:
Select * from tablename1 Natural JOIN tablename_2;
Imamo dva stola: Studenti i Učitelji Stolovi. Napišimo SQL upite za spajanje tablice pomoću Prirodni JOIN kako slijedi:
Select * from Students Natural JOIN Teachers;
Nakon izvršenja gornjeg upita, proizvodi sljedeću tablicu.
LIJEVO PRIDRUŽI
The LIJEVO PRIDRUŽI koristi se za dohvaćanje svih zapisa iz lijeve tablice (tablica1) i odgovarajućih redaka ili stupaca iz desne tablice (tablica2). Ako obje tablice ne sadrže podudarne retke ili stupce, vraća NULL.
Sintaksa:
Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name;
Također možemo predstaviti lijevi spoj kroz Vennov dijagram, kako slijedi:
Napomena: U nekim bazama podataka, LEFT JOIN je također poznat kao LEFT OUTER JOIN.
Tablica 1: Product_Details
Identifikacijski broj proizvoda | Ime proizvoda | Iznos |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobilni | 38000 |
Pro103 | Slušalice | 5000 |
Pro104 | Televizija | 25000 |
Pro105 | iPad | 60000 |
Tablica 2: Customer_Details
arp-a naredba
Ime kupca | Adresa kupca | CustomerAge | Identifikacijski broj proizvoda |
---|---|---|---|
Martin Guptill | San Francisco, SAD | 26 | Pro101 |
James | Australija | 29 | Pro103 |
Ambati Williamson | Novi Zeland | 27 | Pro102 |
Jofra Archer | Južna Afrika | 24 | Pro105 |
Kate Wiley | Australija | dvadeset | Pro103 |
Imamo dva stola: Detalji o proizvodu i Detalji_kupca Stolovi. Napišimo SQL upite za spajanje tablice pomoću LIJEVO PRIDRUŽI kako slijedi:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Nakon izvršenja upita, daje sljedeću tablicu.
RIGHT JOIN ili RIGHT Outer JOIN:
The PRAVO SE PRIDRUŽI koristi se za dohvaćanje svih zapisa iz desne tablice (tablica2) i odgovarajućih redaka ili stupaca iz lijeve tablice (tablica1). Ako obje tablice ne sadrže podudarne retke ili stupce, vraća NULL.
Sintaksa:
Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name;
Pravo spajanje također možemo predstaviti kroz Vennov dijagram, kako slijedi:
Napomena: U nekim bazama podataka RIGHT JOIN je također poznat kao RIGHT OUTER JOIN.
Tablica 1: Product_Details
iskaznica | Ime proizvoda | Iznos |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobilni | 38000 |
Pro103 | Slušalice | 5000 |
Pro104 | Televizija | 25000 |
Pro105 | iPad | 60000 |
Tablica 2: Customer_Details
Ime kupca | Adresa kupca | CustomerAge | Identifikacijski broj proizvoda |
---|---|---|---|
Martin Guptill | San Francisco, SAD | 26 | Pro101 |
James | Australija | 29 | Pro103 |
Ambati Williamson | Novi Zeland | 27 | Pro102 |
Jofra Archer | Južna Afrika | 24 | Pro105 |
Znak | Engleska | 29 | Pro107 |
Morgan | Engleska | dvadeset | Pro108 |
Imamo dva stola: Detalji o proizvodu i Detalji_kupca Stolovi. Napišimo SQL upite za spajanje tablice pomoću PRAVO SE PRIDRUŽI kako slijedi:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Nakon izvršenja upita, proizvodi se donja tablica.
FULL JOIN ili FULL Outer JOIN:
To je skup rezultata kombinacije oba LIJEVO PRIDRUŽI i PRAVO SE PRIDRUŽI . Spojene tablice vraćaju sve zapise iz obje tablice i ako se u tablici ne pronađu podudaranja, postavlja NULL. Također se naziva a POTPUNI VANJSKI SPOJ .
Sintaksa:
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
Ili, POTPUNI VANJSKI SPOJ
Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name;
Puni vanjski spoj također možemo predstaviti kroz Vennov dijagram, kako slijedi:
Tablica 1: Product_Details
iskaznica | Ime proizvoda | Iznos |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobilni | 38000 |
Pro103 | Slušalice | 5000 |
Pro104 | Televizija | 25000 |
Pro105 | iPad | 60000 |
Tablica 2: Customer_Details
Ime kupca | Adresa kupca | CustomerAge | Identifikacijski broj proizvoda |
---|---|---|---|
Martin Guptill | San Francisco, SAD | 26 | Pro101 |
James | Australija | 29 | Pro103 |
Ambati Williamson | Novi Zeland | 27 | Pro102 |
Jofra Archer | Južna Afrika | 24 | Pro105 |
Znak | Engleska | 29 | Pro107 |
Morgan | Engleska | dvadeset | Pro108 |
Imamo dva stola: Detalji o proizvodu i Detalji_kupca Stolovi. Napišimo SQL upite za spajanje tablice pomoću PUNO PRIDRUŽITE SE na sljedeći način:
povezani popis u Javi
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Nakon izvršenja upita, proizvodi se donja tablica.
Napomena: MySQL ne podržava koncepte FULL JOIN, tako da možemo koristiti klauzulu UNION ALL za kombiniranje obje tablice.
Ovdje je sintaksa za UNIJA SVE Klauzula za kombiniranje tablica.
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID UNION ALL Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details RIGHT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID
KRIŽNI SPOJ
Također je poznat kao KARTEZIJANSKI SPOJ , koji vraća Kartezijev produkt dviju ili više spojenih tablica. The KRIŽNI SPOJ proizvodi tablicu koja spaja svaki red iz prve tablice sa svakim drugim retkom tablice. Nije potrebno uključiti nijedan uvjet u CROSS JOIN.
Sintaksa:
Select * from table_1 cross join table_2;
Ili,
Select column1, column2, column3 FROM table_1, table_2;
Tablica 1: Product_Details
iskaznica | Ime proizvoda | Iznos |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobilni | 38000 |
Pro103 | Slušalice | 5000 |
Pro104 | Televizija | 25000 |
Pro105 | iPad | 60000 |
Tablica 2: Customer_Details
Ime kupca | Adresa kupca | CustomerAge | Identifikacijski broj proizvoda |
---|---|---|---|
Martin Guptill | San Francisco, SAD | 26 | Pro101 |
James | Australija | 29 | Pro103 |
Ambati Williamson | Novi Zeland | 27 | Pro102 |
Jofra Archer | Južna Afrika | 24 | Pro105 |
Znak | Engleska | 29 | Pro107 |
Morgan | Engleska | dvadeset | Pro108 |
Imamo dva stola: Detalji o proizvodu i Detalji_kupca Stolovi. Napišimo SQL upite za spajanje tablice pomoću PUNO PRIDRUŽITE SE na sljedeći način:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
Nakon izvršenja upita, proizvodi se donja tablica.
SAMO PRIDRUŽITE SE
To je SELF JOIN koji se koristi za stvaranje tablice spajanjem same sebe jer postoje dvije tablice. Omogućuje privremeno imenovanje barem jedne tablice u SQL izjavi.
Sintaksa:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
stol 1 i Tbl2 su dva različita aliasa tablice za istu tablicu.
Tablica 1: Product_Details
iskaznica | Ime proizvoda | Iznos |
---|---|---|
Pro101 | Laptop | 56000 |
Pro102 | Mobilni | 38000 |
Pro103 | Slušalice | 5000 |
Pro104 | Televizija | 25000 |
Pro105 | iPad | 60000 |
Napišimo SQL upite za spajanje tablice pomoću SAMO PRIDRUŽITE SE kako slijedi:
Select TB.ID, TB.ProductName FROM Product_Details TB, Product_Details TB2 WHERE TB.AMOUNT <tb2.amount; < pre> <p>After executing the query, it produces the below table. </p> <img src="//techcodeview.com/img/sql-tutorial/44/types-sql-join-12.webp" alt="Types of SQL JOIN"> <hr></tb2.amount;>