Contenido del curso
0:00/13:47
MySQL directo en consola con Alberto
07:14Instalación de MySQL Server en Windows
Suscríbete para ver másInstalando MySQL en Mac OS
Suscríbete para ver másInstalación local de un RDBMS (Ubuntu)
Suscríbete para ver másConectar MySQL desde terminal con comandos seguros
Suscríbete para ver másQué es una base de datos relacional
Suscríbete para ver másFunciones YEAR, WHERE y LIKE en MySQL SELECT
Suscríbete para ver másComando JOIN
Suscríbete para ver másInner vs left join en SQL
play_circleViendo ahoraTipos de JOIN
Suscríbete para ver másTraductor de preguntas de negocio a SQL
Suscríbete para ver másContinuación de casos de negocio
Suscríbete para ver másMySQL UPDATE y DELETE sin riesgos
Suscríbete para ver másAprende a dominar los joins en SQL con ejemplos prácticos y enfoque claro. Verás por qué el join explícito mejora la lectura, cómo evitar ambigüedad de columnas, cuándo usar inner join vs left join, y cómo contar resultados con group by y count sin perder información útil como los cero.
¿Qué diferencia hay entre inner join implícito y explícito?
Usar inner join es el comportamiento por defecto. Existe una forma implícita que cruza tablas con select y condición en where. Funciona en MySQL, pero el join explícito mejora la lectura al dejar claro qué tablas se unen y con qué condición. Además, obliga a escribir la línea de unión después de cada join, reduciendo errores.
Ventajas del join explícito.
Ejemplo de join implícito (equivale a un inner join).
SELECT B.title, A.name FROM authors AS A, books AS B WHERE A.author_id = B.author_id LIMIT 10;
Ejemplo de join explícito (más claro y recomendado).
SELECT B.title, A.name FROM books AS B INNER JOIN authors AS A ON A.author_id = B.author_id LIMIT 10;
El uso combinado de inner join y left join cubre “noventa y muchos por ciento” de los casos. El right join puede ser el inverso del left join, pero rara vez se necesita.
¿Cómo evitar ambigüedad y ordenar resultados con order by?
Al unir varias tablas, los nombres pueden ser ambiguos. Prefija siempre con el alias de tabla: A.author_id o B.author_id. Esto evita errores donde el motor no sabe a qué columna te refieres.
Sobre el orden, order by define cómo se devuelven las filas. Por defecto es ascendente (asc). También puedes ordenar descendente (desc) y por columnas numéricas o alfanuméricas.
Ejemplos de ordenamiento.
-- Filtra autores 1–5 y ordena por ID descendente SELECT A.name, B.title FROM authors AS A INNER JOIN books AS B ON B.author_id = A.author_id WHERE A.author_id BETWEEN 1 AND 5 ORDER BY A.author_id DESC; -- Orden alfabético por nombre, descendente SELECT A.name, B.title FROM authors AS A INNER JOIN books AS B ON B.author_id = A.author_id WHERE A.author_id BETWEEN 1 AND 5 ORDER BY A.name DESC;
Punto clave sobre el orden en aplicaciones.
¿Por qué el left join y el group by con count revelan ausencias útiles?
Con left join usas una tabla pivote (autores) y cruzas con la secundaria (libros). Así obtienes todos los autores del rango, incluso si no tienen libros, y verás valores NULL en columnas sin coincidencia. Recuerda: NULL no es vacío; significa “no hay dato”.
Ejemplo que muestra autores 1–5 aunque no tengan libros.
SELECT A.name, A.nationality, B.title FROM authors AS A LEFT JOIN books AS B ON B.author_id = A.author_id WHERE A.author_id BETWEEN 1 AND 5 ORDER BY A.author_id ASC;
Comparación útil.
Para contar libros por autor, usa funciones agrupadas: count con group by sobre el identificador numérico del autor. Así consolidarás múltiples filas en una sola por autor.
Conteo de libros por autor con left join para incluir ceros.
SELECT A.name, A.nationality, COUNT(B.book_id) AS total_libros FROM authors AS A LEFT JOIN books AS B ON B.author_id = A.author_id GROUP BY A.author_id ORDER BY A.author_id ASC;
Resultados esperados del ejemplo.
Aprendizaje clave.
¿Te gustaría probar más casos de negocio con joins y agregaciones? Cuéntame qué consulta necesitas y la diseñamos paso a paso.