SlideShare una empresa de Scribd logo
1 de 4
Principales tipos de JOINS en SQL
Los JOINS en SQL permiten combinar las filas de dos o más tablas para poder mostrar result-
sets de forma relacional
Los JOINs en SQL sirven para combinar filas de dos o más tablas basándose en un campo
común entre ellas, devolviendo por tanto datos de diferentes tablas. Un JOIN se produce
cuando dos o más tablas se juntan en una sentencia SQL.
Existen más tipos de joins en SQL que los que aquí se explican, como CROSS JOIN, O SELF
JOIN, pero no todos ellos están soportados por todos los sistemas de bases de datos. Los
más importantes son los siguientes:
1. INNER JOIN: Devuelve todas las filas cuando hay al menos una
coincidencia en ambas tablas.
2. LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas coincidentes
de la tabla de la derecha.
3. RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas coincidentes
de la tabla de la izquierda.
4. OUTER JOIN: Devuelve todas las filas de las dos tablas, la izquierda y la derecha.
También se llama FULL OUTER JOIN.
1. INNER JOIN
INNER JOIN selecciona todas las filas de las dos columnas siempre y cuando haya una
coincidencia entre las columnas en ambas tablas. Es el tipo de JOIN más común.
SELECT nombreColumna(s)
FROM tabla1
INNER JOIN tabla2
ON tabla1.nombreColumna=table2.nombreColumna;
Se ve más claro utilizando una imagen:
Vamos a verlo también con un ejemplo, mediante las tablas Clientes y Pedidos:
Clientes:
ClienteID NombreCliente Contacto
1 Marco Lambert 456443552
2 Lydia Roderic 445332221
3 Ebbe Therese 488982635
4 Sofie Mariona 412436773
Pedidos:
PedidoID ClienteID Factura
234 4 160
235 2 48
236 3 64
237 4 92
La siguiente sentencia SQL devolverá todos los clientes con pedidos:
SELECT Clientes.NombreCliente, Pedidos.PedidoID FROM Clientes
INNER JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Clientes.NombreCliente;
Si hay filas en Clientes que no tienen coincidencias en Pedidos, los Clientes no se mostrarán.
La sentencia anterior mostrará el siguiente resultado:
NombreCliente PedidoID
Ebbe Therese 236
Lydia Roderic 235
Sofie Mariona 234
Sofie Mariona 237
Sofie Mariona aparece dos veces ya que ha realizado dos pedidos. No aparece Marco Lambert,
pues no ha realizado ningún pedido.
2. LEFT JOIN
LEFT JOIN mantiene todas las filas de la tablaizquierda (la tabla1). Las filas de la tabla derecha
se mostrarán si hay una coincidencia con las de la izquierda. Si existen valores en la tabla
izquierda pero no en la tabla derecha, ésta mostrará null.
SELECT nombreColumna(s)
FROM tabla1
LEFT JOIN tabla2
ON tabla1.nombreColumna=tabla2.nombreColumna;
La representación de LEFT JOIN en una imagen es:
Tomando de nuevo las tablas de Productos y Pedidos, ahora queremos mostrar todos los
clientes, y cualquier pedido que pudieran haber encargado:
SELECT Clientes.NombreCliente, Pedidos.PedidoID
FROM Clientes LEFT JOIN Pedidos
ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Clientes.NombreCliente;
La sentencia anterior devolverá lo siguiente:
NombreCliente PedidoID
Ebbe Therese 236
Lydia Roderic 235
Marco Lambert (null)
Sofie Mariona 234
Sofie Mariona 237
Ahora vemos que se muestran todas las filas de la tabla Clientes, que es la tabla de la
izquierda, tantas veces como haya coincidencias con el lado derecho. Marco Lambert no ha
realizado ningún pedido, por lo que se muestra null.
3. RIGHT JOIN
Es igual que LEFT JOIN pero al revés. Ahora se mantienen todas las filas de la tabla
derecha (tabla2). Las filas de la tabla izquierda se mostrarán si hay una coincidencia con las
de la derecha. Si existen valores en la tabla derecha pero no en la tabla izquierda, ésta se
mostrará null.
SELECT nombreColumna(s)
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.nombreColumna=tabla2.nombreColumna;
La imagen que representa a RIGHT JOIN es:
De nuevo tomamos el ejemplo de Clientes y Pedidos, y vamos a hacer el mismo ejemplo
anterior, pero cambiado LEFT por RIGHT:
SELECT Pedidos.PedidoID, Clientes.NombreCliente
FROM Clientes RIGHT JOIN Pedidos
ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Pedidos.PedidoID;
Ahora van a aparecer todos los pedidos, y los nombres de los clientes que han realizado un
pedido. Nótese que también se ha cambiado el orden, y se han ordenado los datos por
PedidoID.
PedidoID NombreCliente
234 Sofie Mariona
235 Lydia Roderic
236 Ebbe Therese
237 Sofie Mariona
4. OUTER JOIN
OUTER JOIN o FULL OUTER JOIN devuelve todas las filas de la tabla izquierda (tabla1) y de la
tabla derecha (tabla2). Combina el resultado de los joins LEFT y RIGHT. Aparecerá null encada
una de las tablas alternativamente cuando no haya una coincidencia.
SELECT nombreColumna(s)
FROM tabla1
OUTER JOIN tabla2
ON tabla1.nombreColumna=tabla2.nombreColumna;
La imagen que representa el OUTER JOIN es la siguiente:
Vamos a obtener todas las filas de las tablas Clientes y Pedidos:
SELECT Clientes.NombreCliente, Pedidos.PedidoID
FROM Clientes OUTER JOIN Pedidos
ON Clientes.ClienteID=Pedidos.ClienteID
ORDER BY Clientes.NombreCliente;
La sentencia devolverá todos los Clientes y todos los Pedidos, si un cliente no tiene pedidos
mostrará null en PedidoID, y si un pedido no tuviera un cliente
mostraría null en NombreCliente (en este ejemplo no sería lógico que un Pedido no tuviera
un cliente).
La sintaxis de OUTER JOIN o FULL OUTER JOIN no existen en MySQL, pero se puede conseguir
el mismo resultado de diferentes formas, esta es una:
SELECT Clientes.NombreCliente, Pedidos.PedidoID
FROM Clientes
LEFT JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID
UNION
SELECT Clientes.NombreCliente, Pedidos.PedidoID
FROM Clientes
RIGHT JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID;

Más contenido relacionado

La actualidad más candente

Formulas de excel (Proceso para alumnos de preparatoria)
Formulas de excel (Proceso para alumnos de preparatoria)Formulas de excel (Proceso para alumnos de preparatoria)
Formulas de excel (Proceso para alumnos de preparatoria)Eduardo Macias
 
Ejemplo de como subir un archivo
Ejemplo de como subir un archivoEjemplo de como subir un archivo
Ejemplo de como subir un archivoMac Apple Apple
 
Operaciones con celdas en hojas de calculo
Operaciones con celdas en hojas de calculoOperaciones con celdas en hojas de calculo
Operaciones con celdas en hojas de calculoJavier Fernandez Castelo
 
Formato condicional en Excel
Formato condicional en ExcelFormato condicional en Excel
Formato condicional en ExcelEduin Guaman
 
Los inner join- Giovanna Miramontes 3aps Cecyte bc
Los inner join- Giovanna Miramontes 3aps Cecyte bcLos inner join- Giovanna Miramontes 3aps Cecyte bc
Los inner join- Giovanna Miramontes 3aps Cecyte bcGiovanna Miramontes
 
Tercera parte diapositivas 35 42 datos (ingreso de datos)
Tercera parte diapositivas 35 42 datos (ingreso de datos)Tercera parte diapositivas 35 42 datos (ingreso de datos)
Tercera parte diapositivas 35 42 datos (ingreso de datos)HorizonteConsultores
 
Diapositivas 35 42 datos (ingreso de datos)
Diapositivas 35 42 datos (ingreso de datos)Diapositivas 35 42 datos (ingreso de datos)
Diapositivas 35 42 datos (ingreso de datos)HorizonteConsultores
 
Ejercicios excel periodo3 2008
Ejercicios excel periodo3 2008Ejercicios excel periodo3 2008
Ejercicios excel periodo3 2008IETISD Marinilla
 
Presentación horizonte consultores excel basico curso completo
Presentación horizonte consultores excel basico   curso completoPresentación horizonte consultores excel basico   curso completo
Presentación horizonte consultores excel basico curso completoHorizonteConsultores
 

La actualidad más candente (15)

Unidad III
Unidad IIIUnidad III
Unidad III
 
Formulas de excel (Proceso para alumnos de preparatoria)
Formulas de excel (Proceso para alumnos de preparatoria)Formulas de excel (Proceso para alumnos de preparatoria)
Formulas de excel (Proceso para alumnos de preparatoria)
 
Join
JoinJoin
Join
 
Ejemplo de como subir un archivo
Ejemplo de como subir un archivoEjemplo de como subir un archivo
Ejemplo de como subir un archivo
 
Exposicion 2
Exposicion 2Exposicion 2
Exposicion 2
 
Operaciones con celdas en hojas de calculo
Operaciones con celdas en hojas de calculoOperaciones con celdas en hojas de calculo
Operaciones con celdas en hojas de calculo
 
Formato condicional en Excel
Formato condicional en ExcelFormato condicional en Excel
Formato condicional en Excel
 
Los inner join- Giovanna Miramontes 3aps Cecyte bc
Los inner join- Giovanna Miramontes 3aps Cecyte bcLos inner join- Giovanna Miramontes 3aps Cecyte bc
Los inner join- Giovanna Miramontes 3aps Cecyte bc
 
Tercera parte diapositivas 35 42 datos (ingreso de datos)
Tercera parte diapositivas 35 42 datos (ingreso de datos)Tercera parte diapositivas 35 42 datos (ingreso de datos)
Tercera parte diapositivas 35 42 datos (ingreso de datos)
 
Diapositivas 35 42 datos (ingreso de datos)
Diapositivas 35 42 datos (ingreso de datos)Diapositivas 35 42 datos (ingreso de datos)
Diapositivas 35 42 datos (ingreso de datos)
 
Excel
ExcelExcel
Excel
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 
Ejercicios excel periodo3 2008
Ejercicios excel periodo3 2008Ejercicios excel periodo3 2008
Ejercicios excel periodo3 2008
 
Presentacion Excel 2
Presentacion Excel   2Presentacion Excel   2
Presentacion Excel 2
 
Presentación horizonte consultores excel basico curso completo
Presentación horizonte consultores excel basico   curso completoPresentación horizonte consultores excel basico   curso completo
Presentación horizonte consultores excel basico curso completo
 

Similar a Principales tipos de joins en sql

Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla claseAlejandra Vera
 
Cláusulas para unir tablas en bases de datos
Cláusulas para unir tablas en bases de datosCláusulas para unir tablas en bases de datos
Cláusulas para unir tablas en bases de datosKass70
 
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...José Ricardo Tillero Giménez
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasclaudia contreras
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasclaudia contreras
 
Tipos de JOIN en SQL.pptx
Tipos de JOIN en SQL.pptxTipos de JOIN en SQL.pptx
Tipos de JOIN en SQL.pptxMiguelLlerena5
 
PPT SQL Server - Módulo 4.pptx
PPT SQL Server - Módulo 4.pptxPPT SQL Server - Módulo 4.pptx
PPT SQL Server - Módulo 4.pptxElizabethmarte5
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasAshley Stronghold Witwicky
 
Tipos relaciones access 2010
Tipos relaciones access 2010Tipos relaciones access 2010
Tipos relaciones access 2010julia Asensio
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupoJONATHAN1254
 
Consultas multitabl1 sql
Consultas multitabl1 sqlConsultas multitabl1 sql
Consultas multitabl1 sqlamilcarsequen
 

Similar a Principales tipos de joins en sql (20)

Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase
 
Cláusulas para unir tablas en bases de datos
Cláusulas para unir tablas en bases de datosCláusulas para unir tablas en bases de datos
Cláusulas para unir tablas en bases de datos
 
Manipulacion de Bases de Datos
Manipulacion de Bases de DatosManipulacion de Bases de Datos
Manipulacion de Bases de Datos
 
Joins
JoinsJoins
Joins
 
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
Guía 04. Consultas MySQL sobre varias tablas. Composición externa - José J Sá...
 
Join
JoinJoin
Join
 
Llaves (1).pdf
Llaves (1).pdfLlaves (1).pdf
Llaves (1).pdf
 
Leftyrightjoin
LeftyrightjoinLeftyrightjoin
Leftyrightjoin
 
Join
JoinJoin
Join
 
Sql1 multitablas
Sql1 multitablasSql1 multitablas
Sql1 multitablas
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Join
JoinJoin
Join
 
Tipos de JOIN en SQL.pptx
Tipos de JOIN en SQL.pptxTipos de JOIN en SQL.pptx
Tipos de JOIN en SQL.pptx
 
PPT SQL Server - Módulo 4.pptx
PPT SQL Server - Módulo 4.pptxPPT SQL Server - Módulo 4.pptx
PPT SQL Server - Módulo 4.pptx
 
Combinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablasCombinacion de consultas y consultas multitablas
Combinacion de consultas y consultas multitablas
 
Curso SQL - Leccion 7
Curso SQL - Leccion 7  Curso SQL - Leccion 7
Curso SQL - Leccion 7
 
Tipos relaciones access 2010
Tipos relaciones access 2010Tipos relaciones access 2010
Tipos relaciones access 2010
 
Funciones de grupo
Funciones de grupoFunciones de grupo
Funciones de grupo
 
Consultas multitabl1 sql
Consultas multitabl1 sqlConsultas multitabl1 sql
Consultas multitabl1 sql
 

Último

Diseño de un aerogenerador de 400w de eje vertical
Diseño de un aerogenerador de 400w de eje verticalDiseño de un aerogenerador de 400w de eje vertical
Diseño de un aerogenerador de 400w de eje verticalEfrain Yungan
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfautomatechcv
 
Introduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfIntroduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfjhorbycoralsanchez
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptxNayeliZarzosa1
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmáncesarguzmansierra751
 
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdfLABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdfPeraltaFrank
 
JimyPomalaza vivienda rural huancavelica .pdf
JimyPomalaza vivienda rural huancavelica .pdfJimyPomalaza vivienda rural huancavelica .pdf
JimyPomalaza vivienda rural huancavelica .pdfJimyPomalaza
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
LABORATORIO CALIFICADO 02 PESO VOLUMÉTRICO DE SUELOS COHESIVOS- MÉTODO DE LA ...
LABORATORIO CALIFICADO 02 PESO VOLUMÉTRICO DE SUELOS COHESIVOS- MÉTODO DE LA ...LABORATORIO CALIFICADO 02 PESO VOLUMÉTRICO DE SUELOS COHESIVOS- MÉTODO DE LA ...
LABORATORIO CALIFICADO 02 PESO VOLUMÉTRICO DE SUELOS COHESIVOS- MÉTODO DE LA ...PeraltaFrank
 
Estudio de materiales asfalticos para utilizar en obras viales
Estudio de materiales asfalticos para utilizar en obras vialesEstudio de materiales asfalticos para utilizar en obras viales
Estudio de materiales asfalticos para utilizar en obras vialesRamonCortez4
 
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfPPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfDarwinJPaulino
 
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLucindaMy
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptxEfrain Yungan
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaCulturaGeneral1
 
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdfnurix_15
 
POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......dianamontserratmayor
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCarlos Delgado
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana5extraviado
 

Último (20)

Diseño de un aerogenerador de 400w de eje vertical
Diseño de un aerogenerador de 400w de eje verticalDiseño de un aerogenerador de 400w de eje vertical
Diseño de un aerogenerador de 400w de eje vertical
 
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdfINSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
INSTRUCTIVO_NNNNNNNNNNNNNNSART2 iess.pdf
 
Introduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdfIntroduccion-a-los-tipos-de-cemento (1).pdf
Introduccion-a-los-tipos-de-cemento (1).pdf
 
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
5.1 MATERIAL COMPLEMENTARIO Sesión 02.pptx
 
Proyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César GuzmánProyecto de Base de Datos de César Guzmán
Proyecto de Base de Datos de César Guzmán
 
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdfLABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
LABORATORIO CALIFICADO 01 CONTENIDO DE HUMEDAD MÉTODO DE SECADO AL HORNO.pdf
 
JimyPomalaza vivienda rural huancavelica .pdf
JimyPomalaza vivienda rural huancavelica .pdfJimyPomalaza vivienda rural huancavelica .pdf
JimyPomalaza vivienda rural huancavelica .pdf
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
LABORATORIO CALIFICADO 02 PESO VOLUMÉTRICO DE SUELOS COHESIVOS- MÉTODO DE LA ...
LABORATORIO CALIFICADO 02 PESO VOLUMÉTRICO DE SUELOS COHESIVOS- MÉTODO DE LA ...LABORATORIO CALIFICADO 02 PESO VOLUMÉTRICO DE SUELOS COHESIVOS- MÉTODO DE LA ...
LABORATORIO CALIFICADO 02 PESO VOLUMÉTRICO DE SUELOS COHESIVOS- MÉTODO DE LA ...
 
Estudio de materiales asfalticos para utilizar en obras viales
Estudio de materiales asfalticos para utilizar en obras vialesEstudio de materiales asfalticos para utilizar en obras viales
Estudio de materiales asfalticos para utilizar en obras viales
 
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdfPPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
PPT - MODIFICACIONES PRESUPUESTARIAS - Anexo II VF.pdf
 
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptxLICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
LICENCIA DE CONSTRUCCION, Y EDIFICACIONES RESPECTO A LA LEY 29090.pptx
 
4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx4.3 Subestaciones eléctricas componentes principales .pptx
4.3 Subestaciones eléctricas componentes principales .pptx
 
Mano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA ColombiaMano de obra.pdf Curso Costos SENA Colombia
Mano de obra.pdf Curso Costos SENA Colombia
 
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf209530529 Licuacion-de-Suelos-en-Arequipa.pdf
209530529 Licuacion-de-Suelos-en-Arequipa.pdf
 
POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......POBLACIONES CICLICAS Y NO CICLICAS ......
POBLACIONES CICLICAS Y NO CICLICAS ......
 
CFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric ProjectCFRD simplified sequence for Mazar Hydroelectric Project
CFRD simplified sequence for Mazar Hydroelectric Project
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
 
Trabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruanaTrabajo en altura de acuerdo a la normativa peruana
Trabajo en altura de acuerdo a la normativa peruana
 

Principales tipos de joins en sql

  • 1. Principales tipos de JOINS en SQL Los JOINS en SQL permiten combinar las filas de dos o más tablas para poder mostrar result- sets de forma relacional Los JOINs en SQL sirven para combinar filas de dos o más tablas basándose en un campo común entre ellas, devolviendo por tanto datos de diferentes tablas. Un JOIN se produce cuando dos o más tablas se juntan en una sentencia SQL. Existen más tipos de joins en SQL que los que aquí se explican, como CROSS JOIN, O SELF JOIN, pero no todos ellos están soportados por todos los sistemas de bases de datos. Los más importantes son los siguientes: 1. INNER JOIN: Devuelve todas las filas cuando hay al menos una coincidencia en ambas tablas. 2. LEFT JOIN: Devuelve todas las filas de la tabla de la izquierda, y las filas coincidentes de la tabla de la derecha. 3. RIGHT JOIN: Devuelve todas las filas de la tabla de la derecha, y las filas coincidentes de la tabla de la izquierda. 4. OUTER JOIN: Devuelve todas las filas de las dos tablas, la izquierda y la derecha. También se llama FULL OUTER JOIN. 1. INNER JOIN INNER JOIN selecciona todas las filas de las dos columnas siempre y cuando haya una coincidencia entre las columnas en ambas tablas. Es el tipo de JOIN más común. SELECT nombreColumna(s) FROM tabla1 INNER JOIN tabla2 ON tabla1.nombreColumna=table2.nombreColumna; Se ve más claro utilizando una imagen: Vamos a verlo también con un ejemplo, mediante las tablas Clientes y Pedidos: Clientes: ClienteID NombreCliente Contacto 1 Marco Lambert 456443552
  • 2. 2 Lydia Roderic 445332221 3 Ebbe Therese 488982635 4 Sofie Mariona 412436773 Pedidos: PedidoID ClienteID Factura 234 4 160 235 2 48 236 3 64 237 4 92 La siguiente sentencia SQL devolverá todos los clientes con pedidos: SELECT Clientes.NombreCliente, Pedidos.PedidoID FROM Clientes INNER JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID ORDER BY Clientes.NombreCliente; Si hay filas en Clientes que no tienen coincidencias en Pedidos, los Clientes no se mostrarán. La sentencia anterior mostrará el siguiente resultado: NombreCliente PedidoID Ebbe Therese 236 Lydia Roderic 235 Sofie Mariona 234 Sofie Mariona 237 Sofie Mariona aparece dos veces ya que ha realizado dos pedidos. No aparece Marco Lambert, pues no ha realizado ningún pedido. 2. LEFT JOIN LEFT JOIN mantiene todas las filas de la tablaizquierda (la tabla1). Las filas de la tabla derecha se mostrarán si hay una coincidencia con las de la izquierda. Si existen valores en la tabla izquierda pero no en la tabla derecha, ésta mostrará null. SELECT nombreColumna(s) FROM tabla1 LEFT JOIN tabla2 ON tabla1.nombreColumna=tabla2.nombreColumna; La representación de LEFT JOIN en una imagen es: Tomando de nuevo las tablas de Productos y Pedidos, ahora queremos mostrar todos los clientes, y cualquier pedido que pudieran haber encargado:
  • 3. SELECT Clientes.NombreCliente, Pedidos.PedidoID FROM Clientes LEFT JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID ORDER BY Clientes.NombreCliente; La sentencia anterior devolverá lo siguiente: NombreCliente PedidoID Ebbe Therese 236 Lydia Roderic 235 Marco Lambert (null) Sofie Mariona 234 Sofie Mariona 237 Ahora vemos que se muestran todas las filas de la tabla Clientes, que es la tabla de la izquierda, tantas veces como haya coincidencias con el lado derecho. Marco Lambert no ha realizado ningún pedido, por lo que se muestra null. 3. RIGHT JOIN Es igual que LEFT JOIN pero al revés. Ahora se mantienen todas las filas de la tabla derecha (tabla2). Las filas de la tabla izquierda se mostrarán si hay una coincidencia con las de la derecha. Si existen valores en la tabla derecha pero no en la tabla izquierda, ésta se mostrará null. SELECT nombreColumna(s) FROM tabla1 RIGHT JOIN tabla2 ON tabla1.nombreColumna=tabla2.nombreColumna; La imagen que representa a RIGHT JOIN es: De nuevo tomamos el ejemplo de Clientes y Pedidos, y vamos a hacer el mismo ejemplo anterior, pero cambiado LEFT por RIGHT: SELECT Pedidos.PedidoID, Clientes.NombreCliente FROM Clientes RIGHT JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID ORDER BY Pedidos.PedidoID; Ahora van a aparecer todos los pedidos, y los nombres de los clientes que han realizado un pedido. Nótese que también se ha cambiado el orden, y se han ordenado los datos por PedidoID. PedidoID NombreCliente
  • 4. 234 Sofie Mariona 235 Lydia Roderic 236 Ebbe Therese 237 Sofie Mariona 4. OUTER JOIN OUTER JOIN o FULL OUTER JOIN devuelve todas las filas de la tabla izquierda (tabla1) y de la tabla derecha (tabla2). Combina el resultado de los joins LEFT y RIGHT. Aparecerá null encada una de las tablas alternativamente cuando no haya una coincidencia. SELECT nombreColumna(s) FROM tabla1 OUTER JOIN tabla2 ON tabla1.nombreColumna=tabla2.nombreColumna; La imagen que representa el OUTER JOIN es la siguiente: Vamos a obtener todas las filas de las tablas Clientes y Pedidos: SELECT Clientes.NombreCliente, Pedidos.PedidoID FROM Clientes OUTER JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID ORDER BY Clientes.NombreCliente; La sentencia devolverá todos los Clientes y todos los Pedidos, si un cliente no tiene pedidos mostrará null en PedidoID, y si un pedido no tuviera un cliente mostraría null en NombreCliente (en este ejemplo no sería lógico que un Pedido no tuviera un cliente). La sintaxis de OUTER JOIN o FULL OUTER JOIN no existen en MySQL, pero se puede conseguir el mismo resultado de diferentes formas, esta es una: SELECT Clientes.NombreCliente, Pedidos.PedidoID FROM Clientes LEFT JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID UNION SELECT Clientes.NombreCliente, Pedidos.PedidoID FROM Clientes RIGHT JOIN Pedidos ON Clientes.ClienteID=Pedidos.ClienteID;