5th Dec 2022 Lectura de 7 minutos 4 formas sencillas de aprender por fin qué JOIN utilizar en una consulta SQL Kateryna Koidan SQL aprender SQL sql joins Índice Tipos de JOIN en SQL: Una Breve Descripción INNER JOIN LEFT JOIN UNIÓN A LA DERECHA FULL JOIN 4 maneras de aprender Tipos de JOIN en SQL Probablemente ya sepa que debe utilizar el JOIN para combinar datos de varias tablas. ¿Pero qué tipo de JOIN? En este artículo, presentaré cuatro formas sencillas para aprender finalmente qué JOIN utilizar en diferentes escenarios. Antes de pasar a las estrategias inteligentes para aprender Tipos de JOIN en SQL, le sugiero que haga un breve repaso de los principales tipos de JOIN. Revisaremos varios ejemplos para recordar la diferencia entre (INNER) JOIN, LEFT (OUTER) JOIN, RIGHT (OUTER) JOIN, y FULL (OUTER) JOIN. Tipos de JOIN en SQL: Una Breve Descripción Para nuestros ejemplos de JOIN, utilizaremos los datos de un centro de partos, un centro de atención sanitaria dirigido por comadronas para madres que están de parto. En concreto, tenemos dos tablas: newborns, que tiene información básica sobre los bebés nacidos durante un período determinado. midwivesEn la página web de la Asociación de Matronas, encontrarás información sobre los nombres y la experiencia de las matronas que trabajan en nuestro centro de partos. Aquí están las tablas: newborns idmother_namegenderweightheightmidwife_id 11Marta StewartMale3.452.0104 12Cathrine BlackFemale3.048.5101 13Julia GreyFemale2.848.1104 14Penelope GreenMale3.852.5105 15Gabriela GarciaMale2.948.8105 16Nikita MooreMale4.053.0102 17Lucy MillerFemale2.547.3101 midwives idfirst_nameyears_experience 101Samantha White6 102Kathleen Webster2 103Sarah McCarty1 105Julia Smith4 106Angela Phillips0 Ahora, pasemos directamente a los ejemplos. INNER JOIN Empezaremos con el tipo de JOIN más común, que es INNER JOIN (o simplemente JOIN). Este tipo de join se utiliza para mostrar los registros coincidentes de ambas tablas. Digamos que queremos obtener la identificación del recién nacido, el nombre de su madre, y también el nombre de la comadrona que le ayudó durante el parto. Para obtener esta información, podemos unir los newborns y midwives basándonos en el ID de la comadrona, que está disponible en ambas tablas: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n JOIN midwives m ON n.midwife_id = m.id; Para reducir la escritura, utilizamos alias para los nombres de las tablas: n para newborns y m para midwives. También utilizamos un alias de columna (m.name AS midwife) para obtener un nombre de columna significativo en la salida. Este es el resultado: idmother_namemidwife 12Cathrine BlackSamantha White 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith Tenemos la información que queríamos. Sin embargo, puede observar que faltan algunos recién nacidos (IDs 11 y 13) en nuestra tabla de resultados. Eso significa que los registros correspondientes (es decir, los ID de las matronas) no se han identificado en la segunda tabla (es decir, midwives). Si desea conservar todos los registros de la primera tabla, debe utilizar LEFT JOIN. LEFT JOIN LEFT JOIN o LEFT OUTER JOIN se utiliza para mostrar todos los registros de la primera tabla (izquierda) y los registros coincidentes de la segunda tabla (derecha). Para mantener todos los recién nacidos en la salida, podemos utilizar la misma consulta anterior, simplemente sustituyendo JOIN por LEFT JOIN: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n LEFT JOIN midwives m ON n.midwife_id = m.id; Y el resultado: idmother_namemidwife 12Cathrine BlackSamantha White 14Penelope GreenJulia Smith 11Marta StewartNULL 13Julia GreyNULL 17Lucy MillerSamantha White 16Nikita MooreKathleen Webster 15Gabriela GarciaJulia Smith Ahora tenemos todos los registros de la tabla newborns en la salida. Al mismo tiempo, hay dos registros con valores NULL en la columna de matrona. Aparentemente, la matrona correspondiente (ID 104) no aparece en las midwives tablas. Tal vez haya empezado a trabajar recientemente en otro centro de partos. ¡Genial! Pero también es interesante ver si hay alguna comadrona en nuestro centro de partos que no haya asistido a partos recientes. Averigüémoslo utilizando RIGHT JOIN. UNIÓN A LA DERECHA RIGHT JOIN o RIGHT OUTER JOIN se utiliza para mostrar todos los registros de la segunda tabla (derecha) y los registros coincidentes de la primera tabla (izquierda). Si queremos conservar todos los registros de la tabla midwives, podemos utilizar exactamente la misma consulta SQL que antes, simplemente sustituyendo LEFT JOIN por RIGHT JOIN: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n RIGHT JOIN midwives m ON n.midwife_id = m.id; Tenga en cuenta que el RIGHT JOIN se utiliza muy poco, ya que normalmente se puede sustituir por el LEFT JOIN. En nuestro caso, podríamos utilizar LEFT JOIN, y cambiar el orden de las tablas, es decir, poner midwives en la cláusula FROM y newborns en la LEFT JOIN. El resultado sería el mismo que el de abajo: idmother_namemidwife 12Cathrine BlackSamantha White 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White NULLNULLSarah McCarty NULLNULLAngela Phillips En la tabla resultante, se puede ver que hay dos matronas sin registros coincidentes en la newborns tabla: Sarah McCarty y Angela Phillips. Parece que estas dos matronas son las que tienen menos experiencia y probablemente estén ayudando a las matronas más experimentadas sin que se les asigne un papel importante. Observe también que de nuevo no vemos todos los recién nacidos en el conjunto de resultados. ¿Qué pasa si queremos mantener todos los registros de ambas tablas? Es entonces cuando se debe utilizar el FULL JOIN. FULL JOIN FULL JOIN o FULL OUTER JOIN se utiliza para mantener todos los registros de ambas tablas. Por lo tanto, si queremos mantener todos los recién nacidos y todas las matronas en el conjunto de resultados, podemos sustituir el RIGHT JOIN de nuestro último ejemplo por un FULL JOIN. Tenga en cuenta también que el orden de las tablas no importa con FULL JOIN; podemos cambiar la posición de las tablas y obtener el mismo resultado: SELECT n.id, n.mother_name, m.name AS midwife FROM newborns n FULL JOIN midwives m ON n.midwife_id = m.id; idmother_namemidwife 11Marta StewartNULL 12Cathrine BlackSamantha White 13Julia GreyNULL 14Penelope GreenJulia Smith 15Gabriela GarciaJulia Smith 16Nikita MooreKathleen Webster 17Lucy MillerSamantha White NULLNULLSarah McCarty NULLNULLAngela Phillips Ahora tenemos algunos valores de NULL en todas las columnas; estos indican que algunos de los registros de la tabla de la izquierda no fueron emparejados en la segunda tabla o que algunos de los registros de la tabla de la derecha no fueron emparejados en la primera tabla. Todos estos principios de JOIN no parecen demasiado difíciles, ¿verdad? Sin embargo, seleccionar el JOIN correcto a utilizar es a menudo un desafío para los principiantes. Así que, descubramos las mejores estrategias para dominar Tipos de JOIN en SQL. 4 maneras de aprender Tipos de JOIN en SQL Aquí hay cuatro pasos para dominar finalmente los diferentes tipos de Tipos de JOIN en SQL. Aprenda las diferencias clave entre los tipos de JOIN. Su primer paso debe ser aprender sobre los cuatro tipos principales de JOIN y las reglas básicas para aplicarlos: JOIN muestra sólo los registros coincidentes de ambas tablas. LEFT JOIN muestra todos los registros de la tabla izquierda y los registros coincidentes de la tabla derecha. RIGHT JOIN muestra todos los registros de la tabla derecha y los registros coincidentes de la tabla izquierda. FULL JOIN muestra todos los registros de ambas tablas. Lea artículos de alta calidad en Tipos de JOIN en SQL. Una vez que haya aprendido lo básico, le recomendamos que revise los detalles y los casos de uso de los diferentes tipos de JOIN. Le sugiero que comience con estos artículos que discuten los principales tipos de JOIN e incluyen explicaciones detalladas y ejemplos: Explicación de los tipos de JOIN de SQL ¿Qué es un INNER JOIN en SQL? ¿Qué es un LEFT JOIN en SQL? ¿Qué es el FULL JOIN y cuándo utilizarlo? 7 Ejemplos de SQL JOIN con explicaciones detalladas Utilice nuestra hoja de trucos de SQL JOIN. Incluso si conoce Tipos de JOIN en SQL bastante bien, a menudo es útil ver un breve recordatorio con la sintaxis y los casos de uso de los diferentes tipos de JOIN. Recomiendo imprimir o marcar nuestra increíble hoja de trucos de SQL JOIN. Es una guía ilustrada de Tipos de JOIN en SQL que puede consultar siempre que no esté seguro de cómo usar JOIN en su consulta SQL. ¡Practica! Por último, si realmente quieres dominar Tipos de JOIN en SQL, necesitas mucha práctica. Puedes leer sobre los retos que puedes encontrar al practicar Tipos de JOIN en SQL. Para que tu primera experiencia con Tipos de JOIN en SQL sea lo más fluida posible, te sugiero que empieces con el curso interactivo de LearnSQL.com Tipos de JOIN en SQL de LearnSQL.com. Este curso práctico incluye 93 desafíos de codificación que cubren todos los tipos importantes de Tipos de JOIN en SQL. Específicamente, aprenderás: Cuando usar JOIN, LEFT JOIN, RIGHT JOIN, y FULL JOIN. Cómo unir tres o más tablas en una consulta. Cómo filtrar datos con diferentes tipos de join. Cómo unir una tabla consigo misma. Qué es un join no equitativo y cuándo utilizarlo. Puedes aprender más sobre este curso en este artículo general. Gracias por leer, y ¡feliz aprendizaje! Tags: SQL aprender SQL sql joins