mysql join tutorial inner
Obteniu informació sobre diferents sentències de MySQL JOIN, com ara Interior, Exterior, Creuada, Esquerra, Dreta i Auto, amb sintaxi i exemples de programació:
En aquest tutorial, aprendrem sobre MySQL JOIN i també entendreem els diferents tipus de Joins que s’admeten a MySQL. JOIN en la seva forma més senzilla es pot considerar com un mitjà per recuperar / actualitzar o suprimir dades de diverses taules amb una sola consulta.
Per tant, en essència, JOIN combina dues o més taules per obtenir dades contra una condició determinada.
MySQL també admet altres maneres diferents de consultar dades de diverses taules mitjançant subquestes i combinant diverses consultes mitjançant UNION, etc.
Què aprendreu:
- Taules normalitzades
- MySQL JOIN
- Tipus de MySQL JOIN
- MySQL UNEIX-TE AMB ACTUALITZACIÓ I SUPRIM
- Conclusió
Taules normalitzades
A les bases de dades MySQL normalitzades, les taules tenen relacions amb columnes comunes mitjançant restriccions de claus com les claus externes.
Intentem entendre-ho amb l'ajut d'un exemple - Suposem que hi ha 2 taules, EMPLOYEEEE i EMPLOYEE_DEPARTMENT. Ara, en una base de dades desnormalitzada, és a dir, una sola taula amb totes les columnes, es duplicaria molta informació, per exemple, sobre el departament, ja que hi pot haver molts empleats que formin part del mateix departament.
Per tant, per reduir aquestes duplicacions i estalviar en emmagatzematge, les bases de dades es mantenen en un estat normalitzat.
Per tant, en aquest cas, ens referiríem al departament mitjançant un camp Department_id a la taula EMPLOYEE i tota la informació rellevant relacionada amb el departament, com ara informació del departament, cap de departament, etc., es pot conservar com a part de la taula EMPLEAT_DEPARTAMENT.
Així, en poques paraules: EMPLOYEE i EMPLOYEE_DEPARTMENT s’uneixen entre si a través del camp Department_id, que actua com a CLAU ESTRANGERA per a la taula EMPLOYEE i CLAU PRIMÀRIA per a la taula EMPLOYEE_DEPARTMENT.
A la imatge següent hi ha una representació pictòrica que té una relació entre ambdues taules mitjançant Restricció de clau estrangera
MySQL JOIN
MySQL JOIN s'utilitza per obtenir, actualitzar o suprimir dades de 2 o més taules en funció d'una condició determinada. Per tant, JOIN sempre s’utilitza conjuntament amb sentències SELECT, UPDATE o DELETE
Sintaxi de l'ordre JOIN:
UNEIX-TE amb SELECT
SELECT {column_list} FROM tableName1 {joinType} tableName2 ON {joinCondition}
UNEIX-TE amb ACTUALITZACIÓ
DELETE FROM tableName1 {joinType} tableName2 ON {joinCondition} WHERE {condition}
UNEIX-TE amb ELIMINA
UPDATE tableName1 SET targetColumn = targetValue FROM tableName1 {joinType} tableName2 ON {joinCondition} WHERE {condition}
Tingueu en compte que JOIN es pot aplicar a diverses taules d'una sola consulta, però per simplificar-ho, primer intentem entendre l'ús de Joins amb 2 taules.
Les diferents parts de la sintaxi inclouen:
- {column_list} - Això representa els noms de les columnes que volem recuperar com a resultat de la nostra consulta.
- {JoinType} - Això indica el tipus de participació que estem aplicant. Hi ha diferents tipus de JOINS que poden obtenir dades:
- COMBINACIÓ INTERNA
- UNEIX-TE A L’EXTERIOR
- ESQUERRA EXTERIOR UNEIX-SE
- UNEIX-TE A L’EXTERIOR
- CROSS JOIN
Aprendrem sobre tots aquests diferents tipus de MySQL JOINS a les properes seccions del tutorial.
- {JoinCondition} - Aquestes són les condicions de la columna que s'utilitzarien per a JOIN per consultar i obtenir dades.
A la següent secció, parlarem de diferents tipus d’adherències disponibles a MySQL.
Tipus de MySQL JOIN
Preparació de dades de mostra
Per utilitzar el JOINS, utilitzarem 2 taules Employee i Employee_Department amb els detalls següents. Podeu utilitzar / referir-vos a un lloc útil aquí per tal de generar dades fictícies per a l'esquema.
Consultes de llistat per a la creació i inserció de taules:
CREATE TABLE IF NOT EXISTS Employee_Department ( name varchar(100), id INT NOT NULL auto_increment, PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS Employee ( name varchar(100), id int not null auto_increment, address varchar(100), Department_id int, PRIMARY KEY (id), FOREIGN KEY (Department_id) references Employee_Department(id) ); INSERT INTO `Employee_Department` VALUES ('Information Technology','1'), ('HR','2'), ('Finance','3'), ('Accounting','4'), ('Housekeeping','5'), ('Security','6'), ('Support','7'), ('Contract Staff','8'), ('Sales','9'), ('Management','10'); INSERT INTO `Employee` VALUES ('Veniam','1','640 Damon Junction
East Mathew, NY 68818','3'), ('Molestiae','2','6658 Hollis Club
Ernamouth, TX 19743','10'), ('Officiis','3','59965 Mason Neck Apt. 985
Kareemborough, NV 85535','9'), ('Rerum','4','91067 Geovany Fort
Hanefort, WA 92863','6'), ('Et','5','7647 Reva Shores Suite 970
New Audrafort, OH 17846-5397','2'), ('Et','6','9419 Carmela Burg Apt. 687
Aimeebury, SD 32389-4489','8'), ('Laborum','7','6961 Weissnat Drive
Donnellyfort, MT 53947','6'), ('Cupiditate','8','117 Nellie Summit Suite 982
South Heavenfurt, CA 45675','8'), ('Eveniet','9','9086 Mariam Square Suite 698
South Dulce, MT 82861-3079','2'), ('Rerum','10','783 Goodwin Burgs Apt. 429
Willmsfort, UT 42820-1019','9'), ('Quis','11','42928 Ernesto Trail
East Jules, WV 87169-2851','1'), ('Esse','12','161 Kassulke Stravenue Apt. 937
Williamsonton, MS 62622','7'), ('Dolores','13','22811 Liliana Trail Apt. 890
South Ernesto, MT 04134','10'), ('Ut','14','981 Laron Overpass Suite 361
West Olahaven, FL 46982-7801','10'), ('Mollitia','15','411 Louisa Mill
South Maximefort, MA 04903','8'), ('Necessitatibus','16','2853 Jonathon Turnpike
Quitzonville, KY 54776','4'), ('Fugit','17','3647 Rosalinda Corner
Maureenstad, RI 96605','5'), ('Corporis','18','03559 Nicholas Circle Apt. 364
West Zettaberg, ID 58592-3447','8'), ('Neque','19','56111 Alysson Gateway Apt. 212
Leschbury, VT 90605-2306','8'), ('Velit','20','263 O'Keefe Avenue Apt. 884
West Missouri, IL 50303','6'),
COMBINACIÓ INTERNA
INNER JOIN és la forma més habitual de JOIN i s’utilitza molt àmpliament. Gairebé tots hauríeu d’haver utilitzat això en algun moment o altre. Vegem la sintaxi i algunes consultes de mostra.
Sintaxi:
SELECT {column_list} FROM tableName1 INNER JOIN tableName2 ON {joinCondition}
Consulta per obtenir noms_departament per a tots els empleats de les taules declarades anteriorment (empleat i departament_empleat):
SELECT Employee.name as Employee_name, Employee_Department.name as Department_name FROM Employee INNER JOIN Employee_Department ON Employee.Department_id = Employee_Department.id
Aquí teniu el resultat de la consulta anterior:
Nom d'empleat | Nom_departament |
---|---|
coses | Seguretat |
OMS | Tecnologia de la Informació |
I | RRHH |
caure | RRHH |
Jo | Finances |
necessitats | Comptabilitat |
Fgit | Servei de neteja |
aperitius | Seguretat |
si us plau | Seguretat |
Això | Suport |
I | Personal contractat |
afany | Personal contractat |
resiliència | Personal contractat |
cos | Personal contractat |
Fira | Personal contractat |
oficines | Vendes |
coses | Vendes |
molèsties | Gestió |
dolors | Gestió |
Fora | Gestió |
Nota: Aquí hem utilitzat àlies de noms de columna. Exemple: Employee.name com Employee_name: només per fer que els resultats siguin més llegibles i complets.
Modifiquem aquesta consulta per obtenir només els noms que comencin per la lletra 'm'.
SELECT Employee.name as Employee_name, Employee_Department.name as Department_name FROM Employee INNER JOIN Employee_Department ON Employee.Department_id = Employee_Department.id WHERE Employee.name like 'm%'
A continuació es mostra la sortida:
Nom d'empleat | Nom_departament | |||||
---|---|---|---|---|---|---|
aperitius | 7 | 6961 Weissnat Drive Donnellyfort, MT 53947 | 6 | NUL | NUL | NUL |
molèsties | Gestió | |||||
resiliència | Personal contractat |
I ara anem a entendre l’INSCRIPCIÓ INTERIOR amb l’ajuda de Venn Diagram com es mostra a continuació. Les files resultants que es retornen consisteixen en les dades superposades entre ambdues taules, igualades a la condició JOIN.
UNEIX-TE A L’EXTERIOR
OUTER JOIN s’utilitza per obtenir dades de 2 o més taules, amb l’excepció d’incloure files sense correspondència (o files amb dades nul·les per a les columnes consultades).
Per entendre millor Outer Join, afegiu una nova taula office_locations amb camps - id i adreça i afegiu una nova columna anomenada `office_id` a la taula d'empleats creada originalment.
Aquí hi ha les consultes per al mateix:
CREATE TABLE IF NOT EXISTS office_locations ( address varchar(100), id INT NOT NULL auto_increment, PRIMARY KEY (id) ); ALTER TABLE Employee ADD COLUMN office_id int; INSERT INTO `office_locations`(address) VALUES('Bangalore'), ('Mumbai'), ('Seattle'), ('Santa Clara'); UPDATE Employee SET office_id=1 where id % 2 = 0; UPDATE Employee SET office_id=2 where id % 3 = 0;
Si us plau, consulteu el diagrama Venn a continuació per entendre les unions externes de forma pictòrica:
Hi ha 2 tipus de COMUNICACIONS EXTERNES
a) ESQUERRA A L’EXTERIOR
Com el seu nom indica, aquest tipus d'unió obtindria totes les files (inclosos els valors NULL) de la taula que es troba a la part esquerra de la consulta JOIN. En paraules simples, tots els resultats / files que no coincideixin amb la condició JOIN es retornaran amb el resultat amb valors NULS per a la taula adequada.
Per exemple, necessitem dades d’ubicació per a tots els empleats, és a dir, esbrinar quina és l’adreça d’oficina de tots els empleats.
SELECT * from Employee LEFT OUTER JOIN office_locations ON Employee.office_id = office_locations.id
Resultat de la consulta anterior:
Nom | Id | adreça | ID_departament | Identificador_oficina | Adreça de l’oficina | Id |
---|---|---|---|---|---|---|
Jo | 1 | 640 Damon Junction East Mathew, Nova York 68818 | 3 | NUL | NUL | NUL |
molèsties | 2 | 6658 Hollis Club Ernamouth, TX, 19743 | 10 | 1 | Bangalore | 1 |
oficines | 3 | 59965 Mason Neck Apt. 985 Kareemborough, NV 85535 | 9 | 2 | Bombai | 2 |
coses | 4 | 91067 Fort Geovany) Hanefort, WA 92863 | 6 | 1 | Bangalore | 1 |
I | 5 | 7647 Reva Shores Suite 970 New Audrafort, OH 17846-5397 | 2 | NUL | NUL | NUL |
I | 6 | 9419 Carmela Burg Apt. 687 Aimeebury, SD 32389-4489 | 8 | 2 | Bombai | 2 |
afany | 8 | 117 Nellie Summit Suite 982 South Heavenfurt, CA 45675 | 8 | 1 | Bangalore | 1 |
caure | 9 | 9086 Mariam Square Suite 698 South Dulce, MT 82861-3079 | 2 | 2 | Bombai | 2 |
coses | 10 | 783 Goodwin Burgs Apt. 429 Willmsfort, UT 42820-1019 | 9 | 1 | Bangalore | 1 |
OMS | 11 | 42.928 Ernesto Trail East Jules, WV 87169-2851 | 1 | NUL | NUL | NUL |
Això | 12 | 161 Kassulke Stravenue Apt. 937 Williamsonton, MS 62622 | 7 | 2 | Bombai | 2 |
dolors | 13 | 22811 Liliana Trail Apt. 890 South Ernesto, MT 04134 | 10 | NUL | NUL | NUL |
Fora | 14 | 981 Laron Overpass Suite 361 West Olahaven, FL 46982-7801 | 10 | 1 | Bangalore | 1 |
resiliència | 15 | 411 Louisa Mill South Maximefort, MA 04903 | 8 | 2 | Bombai | 2 |
necessitats | 16 | 2853 Jonathon Turnpike Quitzonville, KY 54776 | 4 | 1 | Bangalore | 1 |
FUGIT | 17 | 3647 Rosalinda Corner Maureenstad, RI 96605 | 5 | NUL | NUL | NUL |
cos | 18 | 03559 Nicholas Circle Apt. 364 West Zettaberg, ID 58592-3447 | 8 | 2 | Bombai | 2 |
o bé | 19 | 56111 Alysson Gateway Apt. 212 Leschbury, VT 90605-2306 | 8 | NUL | NUL | NUL |
si us plau | 20 | 263 O'Keefe Avenue Apt. 884 West Missouri, IL 50303 | 6 | 1 | Bangalore | 1 |
b) UNEU EXTERIOR DRET
De manera semblant a LEFT JOIN, en aquest tipus d’unió tots els registres que no coincideixen de la taula dreta es retornen amb valors NULS a les columnes de la taula lateral esquerra.
amplada primer cerca arbre c ++
Per exemple, amb les nostres taules de mostra, si executem el RIGHT JOIN amb la mateixa consulta que vam utilitzar per a LEFT JOIN, obtindrem valors NULS per a les ciutats 'Seattle' i 'Santa Clara', ja que no hi ha files a la taula d'empleats que tinguin la ubicació establerta a aquests valors.
SELECT * from Employee RIGHT OUTER JOIN office_locations ON Employee.office_id = office_locations.id
Resultat de la consulta anterior:
Nom | Id | adreça | ID_departament | Identificador_oficina | Adreça de l’oficina | Id |
---|---|---|---|---|---|---|
si us plau | 20 | 263 O'Keefe Avenue Apt. 884 West Missouri, IL 50303 | 6 | 1 | Bangalore | 1 |
molèsties | 2 | 6658 Hollis Club Ernamouth, TX, 19743 | 10 | 1 | Bangalore | 1 |
coses | 4 | 91067 Fort Geovany Hanefort, WA 92863 | 6 | 1 | Bangalore | 1 |
afany | 8 | 117 Nellie Summit Suite 982 South Heavenfurt, CA 45675 | 8 | 1 | Bangalore | 1 |
coses | 10 | 783 Goodwin Burgs Apt. 429 Willmsfort, UT 42820-1019 | 9 | 1 | Bangalore | 1 |
Fora | 14 | 981 Laron Overpass Suite 361 West Olahaven, FL 46982-7801 | 10 | 1 | Bangalore | 1 |
necessitats | 16 | 2853 Jonathon Turnpike Quitzonville, KY 54776 | 4 | 1 | Bangalore | 1 |
oficines | 3 | 59965 Mason Neck Apt. 985 Kareemborough, NV 85535 | 9 | 2 | Bombai | 2 |
I | 6 | 9419 Carmela Burg Apt. 687 Aimeebury, SD 32389-4489 | 8 | 2 | Bombai | 2 |
caure | 9 | 9086 Mariam Square Suite 698 South Dulce, MT 82861-3079 | 2 | 2 | Bombai | 2 |
Això | 12 | 161 Kassulke Stravenue Apt. 937 Williamsonton, MS 62622 | 7 | 2 | Bombai | 2 |
resiliència | 15 | 411 Louisa Mill South Maximefort, MA 04903 | 8 | 2 | Bombai | 2 |
cos | 18 | 03559 Nicholas Circle Apt. 364 West Zettaberg, ID 58592-3447 | 8 | 2 | Bombai | 2 |
NUL | NUL | NUL | NUL | NUL | Seattle | 3 |
NUL | NUL | NUL | NUL | NUL | Santa Clara | 4 |
Notes / Consells:
- En altres bases de dades relacionals com Microsoft SQL, és possible que trobeu un altre tipus d’EXTERIOR UNIÓ que s’anomena FULL OUTER JOIN. No és altra cosa que una combinació de les combinacions INTERIOR i EXTERIOR, és a dir, retornarà valors NULS de les taules ESQUERRA i DRETA.
- Per obtenir una discussió detallada juntament amb explicacions i exemples sobre les diferències entre JOINES INTERIORS i EXTERNES, consulteu el nostre tutorial aquí.
- A les consultes OUTER JOIN: el RIGHT OUTER JOIN i LEFT OUTER JOIN només es podrien especificar com RIGHT JOIN i LEFT JOIN respectivament per obtenir més llegibilitat.
CROSS JOIN
CROSS JOIN també s’anomena producte cartesià. Retorna un resultat contra les condicions d'unió coincidents amb un total de m x n files on m i n són un nombre de files coincidents a la taula1 i la taula2 contra la condició JOIN.
Vegem una mostra de consulta per a un CROSS JOIN per obtenir resultats de 2 taules: empleats i oficines
SELECT * from Employee CROSS JOIN office_locations
La sortida retornada contindrà un total de 80 files, que no és res més que el producte de les files de les dues taules - Employee (20) x office_locations (4) => 80
Tingueu en compte que, mentre feu CROSS JOIN, no cal que especifiqueu cap condició JOIN, ja que obtindríeu m x n resultat.
Notes / Consells:
No trobareu moltes vegades amb CROSS JOIN, ja que no té molts casos d’ús associats. Aquesta unió s’executa generalment quan algú busca obtenir totes les combinacions possibles contra les dades de 2 taules.
Per exemple: Suposem que sou exportador de peces de vestir i que teniu 2 taules: una amb dades de color i una altra amb dades de mida. Aquí, per assegurar l’inventari, podeu plantejar-vos unir les dues taules per assegurar-vos que totes les peces s’adquireixen per a totes les combinacions de talla i color.
UNEIX-TE JO
SELF JOIN és igual que qualsevol altra combinació INNER o OUTER, amb les úniques excepcions que les dues taules, és a dir, la taula Unió i la Taula unida, són les mateixes.
Generalment fem servir SELF Joins quan volem esbrinar la relació entre files de la mateixa taula. Per exemple, si una taula té tant l’identificador d’empleat com l’identificador d’empleat del supervisor, podem unir-nos a la taula si volem esbrinar el nom del gestor contra el nom de l’empleat.
Tingueu en compte que, per a SELF JOIN, heu d’utilitzar àlies de taula perquè es puguin especificar les condicions d’unió referint-se a la taula correcta.
Vegem un exemple aquí:
SELECT e1.name as Employee1, e2.name as Employee2 from Employee e1 inner join Employee e2 on e1.office_id = e2.office_id where e1.Department_id = e2.Department_id
Aquí ens hem unit a la taula Empleats per esbrinar els noms dels empleats que tenen la mateixa ubicació d'oficina i el mateix departament
Empleat1 | Empleat2 |
---|---|
I | resiliència |
molèsties | molèsties |
molèsties | Fora |
Oficiis | oficines |
coses | coses |
coses | si us plau |
I | I |
I | cos |
afany | afany |
caure | caure |
coses | coses |
Això | Això |
Fora | molèsties |
Fora | Fora |
resiliència | I |
resiliència | resiliència |
resiliència | cos |
necessitats | necessitats |
cos | I |
cos | resiliència |
cos | cos |
si us plau | coses |
si us plau | si us plau |
Com ja havíem comentat, SELF JOIN només té les taules Joining i Joined iguals, podem utilitzar SELF JOIN amb INNER o OUTER Joins.
MySQL UNEIX-TE AMB ACTUALITZACIÓ I SUPRIM
Fins ara, hem parlat de Joins amb sentències SELECT. Tanmateix, els Joins també es podrien utilitzar amb instruccions MySQL DELETE i UPDATE.
La sintaxi es manté aquí. Vegem un parell d’exemples per entendre millor el concepte.
ACTUALITZA AMB INNER JOIN
Suposem que volem canviar l'adreça de la taula Empleats pel nom de la ubicació de l'oficina que hi ha a la taula oficina_ubicacions. Aquí podem utilitzar INNER JOIN per obtenir el nom de la ciutat a office_locations i actualitzar la mateixa consulta.
Consulta de mostra:
UPDATE Employee emp inner join office_locations off_loc on emp.office_id = off_loc.id set emp.address = off_loc.address;
De manera similar, UPDATE també es pot utilitzar amb altres tipus de combinacions, en funció del requisit contra casos d’ús específics.
ESBORRA AMB INTERIOR UNEIX-TE
Utilitzarem taules, Employee i Employee_Departments com a exemple. Suposem que volem suprimir tots els registres d'empleats que pertanyen al departament de vendes i que volem suprimir també l'entrada del departament de vendes.
Com que hem utilitzat Department_id com a restricció FOREIGN KEY, per tant, primer hauríem de DROP aquesta restricció abans d’utilitzar DELETE with JOIN per a diverses taules.
Primer esbrinem el nom de la restricció creada per a Department_id a la taula Empleats. Simplement executeu l'ordre per obtenir l'ordre CREATE TABLE.
show create table Employee
Obtindreu la sortida com:
CREATE TABLE `Employee` ( `name` varchar(100) DEFAULT NULL, `id` int NOT NULL AUTO_INCREMENT, `address` varchar(100) DEFAULT NULL, `Department_id` int DEFAULT NULL, `office_id` int DEFAULT NULL, PRIMARY KEY (`id`), KEY `Department_id` (`Department_id`), CONSTRAINT `Employee_ibfk_1` FOREIGN KEY (`Department_id`) REFERENCES `Employee_Department` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
Ara podeu referir el nom de la restricció FOREIGN_KEY des de l'ordre anterior que és 'Employee_ibfk_1' i podem utilitzar aquest nom per eliminar aquesta restricció de la taula Employee executant l'ordre següent:
alter table Employee drop constraint Employee_ibfk_1
Ara executem l’ordre DELETE amb INNER JOIN
delete emp_dept, emp from Employee emp inner join Employee_Department emp_dept on emp.Department_id = emp_dept.id where emp.Department_id = 9
La sortida d'aquesta ordre seria no. de files esborrades (i això hauria de BORRAR les files de les dues taules a les quals es fa referència a la consulta UNEIX-te més amunt)
Preguntes freqüents
P # 1) Quants tipus d’adherències hi ha a MySQL?
Resposta: MySQL admet principalment 3 tipus d'unions. Aquests són:
- Combinació interna
- Unió exterior: unió exterior esquerra i unió exterior dreta
- Unió creuada
P # 2) Unir-se només es pot utilitzar per a dues taules?
Resposta: Les combinacions es poden aplicar a 2 o més de 2 taules. La majoria de les vegades, les combinacions s’utilitzen per a dues taules.
A continuació es mostra un exemple d'un INNER JOIN que utilitza 3 taules:
select Employee.name as emp_name, Employee_Department.name as dept_name, office_locations.address as office_location from Employee inner join Employee_Department on Employee.Department_id = Employee_Department.id inner join office_locations on Employee.office_id = office_locations.id
Resultat de la consulta anterior:
nom_emp | nom_dept | ubicació_oficina |
---|---|---|
Fora | Gestió | Bangalore |
molèsties | Gestió | Bangalore |
coses | Seguretat | Bangalore |
I | Personal contractat | Bombai |
afany | Personal contractat | Bangalore |
caure | RRHH | Bombai |
Això | Suport | Bombai |
resiliència | Personal contractat | Bombai |
necessitats | Comptabilitat | Bangalore |
cos | Personal contractat | Bombai |
si us plau | Seguretat | Bangalore |
P # 3) Com utilitzar àlies de taula amb Joins?
Resposta: Els àlies són una manera de tenir un nom temporal per fer referència a una taula dins d’una consulta. Com que les consultes JOIN són de vegades complexes i per fer que les consultes siguin llegibles i evitin fer referència a noms de taules per a cada referència de columna, podem tenir noms escurçats amb àlies.
Escrivim una consulta INNER JOIN per obtenir les dades de tots els noms dels empleats i els noms dels departaments de les taules Empleat i Departaments_empleats respectivament.
select emp.name as emp_name, Department.name as dept_name from Employee emp inner join Employee_Department as Department on emp.Department_id = Department.id
A la consulta anterior, podeu veure que tenim una taula Empleats alias com emp i la taula Employee_Department com a Departament i que hem utilitzat els àlies per fer referència als noms de columnes i a les condicions d’unió.
Q # 4) Què és CROSS JOIN?
Resposta: CROSS JOIN és un tipus d'unió on l'usuari vol obtenir el producte cartesià de les taules que s'uneixen.
El resultat de CROSS JOIN és m x n on m és el número de files coincidents de la primera taula i n és el número de files coincidents de la segona taula.
Q # 5) Com obtenir un JOIN EXTERIOR COMPLET a MySQL
Resposta: MySQL no proporciona FULL OUTER JOIN com a tipus Join diferent, a diferència d'altres bases de dades com Microsoft SQL. Tanmateix, per obtenir resultats tal com s’hauria obtingut un FULL OUTER JOIN, podem combinar els resultats de LEFT OUTER JOIN i RIGHT OUTER JOIN.
Per exemple, podem obtenir informació sobre els empleats i els departaments i aplicar la unió a les combinacions exteriors esquerra i dreta.
Lectura recomanada = >> Operador de MySQL Union
Conclusió
En aquest tutorial, hem après sobre diferents tipus d’adherències disponibles a MySQL.
Vam discutir les combinacions INNER, OUTER, CROSS i SELF i també vam veure com es podrien utilitzar consultes JOIN amb instruccions UPDATE i DELETE per tenir consultes eficients i optimitzades per a dades combinades entre 2 o més de 2 taules.
preguntes d’entrevistes avançades d’oracle pl sql
JOINS és una de les consultes més bàsiques i qualsevol persona que utilitzi o aprengui bases de dades basades en SQL hauria de tenir una comprensió completa de SQL Joins.
Lectura recomanada
- Unió interior contra unió exterior: diferència exacta amb exemples
- Tutorial MySQL Create View amb exemples de codi
- Declaració MySQL Delete: suprimiu la sintaxi i els exemples d'ordres
- MySQL Insereix a la taula: insereix sintaxi i exemples de sentències
- Tutorial de la declaració d'actualització de MySQL: actualització de sintaxi i exemples de consulta
- Diferència entre SQL vs MySQL vs SQL Server (amb exemples)
- Què és MySQL i per què s'utilitza?
- 20+ Tutorial de MongoDB per a principiants: curs gratuït de MongoDB