JOIN básico, parte 1
Parte de la sección Fundamentos del Journey de SQL de Coddy. Lección 43 de 72.
Hasta ahora, hemos resuelto problemas con una sola tabla. Ahora examinaremos cómo manejar varias tablas.
Supongamos que tenemos las siguientes tablas:
courses
| course_id | lecturer_id |
|---|---|
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
docentes
| lecturer_id | nombre |
|---|---|
| 1 | Jhonas |
| 2 | Malidos |
La tarea consiste en mostrar cada curso con el nombre del docente correspondiente.
Hay dos formas de lograrlo. Para cada opción, relacionamos cada fila de una tabla con la otra. Comprobamos una condición que debe cumplirse y, si se cumple, combinamos las dos filas en una. El resultado deseado para ambas opciones:
| course_id | lecturer_name |
|---|---|
| 1 | Jhonas |
| 2 | Jhonas |
| 3 | Malidos |
Opción 1:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_idAquí escribimos dos tablas en la palabra clave FROM y, en la cláusula WHERE, solicitamos que el lecturer_id de ambos registros sea el mismo. En la cláusula SELECT, ahora escribimos table.column para que la base de datos sepa de dónde obtener la columna.
Opción 2:
SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_idEn lugar de WHERE, usamos JOIN table ON condition
Ambas opciones dan el mismo resultado y se llaman unión interna: solo se combinan los pares de filas que cumplen la condición.
Desafío
FácilTablas y columnas disponibles:
grades:course_id,student_id,gradestudents:id,name
Crea una consulta que obtenga student_name, course_id, student_id y grade en una sola tabla. Ordena el resultado por grade en orden ascendente.
Pruébalo tú mismo
-- Enumera las columnas que pide la tarea usando el alias que solicita
SELECT ____
FROM students, grades
-- Conserva solo los pares de filas en los que ambas tablas describen a la misma persona
WHERE ____
ORDER BY gradeEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Más palabras clave
La palabra clave INLa palabra clave BETWEENLa palabra clave LIKELa palabra clave ASRepaso: modelos de teléfonos móviles2Condiciones
Conceptos básicos de las condicionesLa palabra clave ANDLa palabra clave ORLa palabra clave NOTCombinación de múltiples condicionesParéntesisBooleanos5Operaciones aritméticas
Operadores matemáticosColumnas matemáticasLa operación móduloLa función ROUND()3Formato de retorno específico
Valores nulosOrdenar resultados Parte 1Ordenar resultados Parte 2Repaso: empresa de ciberseguridadLimitar el número de registrosRepaso: fábrica de vehículos6Retos introductorios
Repaso - Elecciones parlamentariasRepaso - Detención policial de un criminalRepaso - Envase de bebidas de barRepaso - Diseñar nuevas columnas9Varias tablas
JOIN básico, parte 1JOIN básico, parte 2Repaso: JOINAuto JOINRepaso: auto JOINUNIONSimplificar consultas: palabra clave WITHRepaso: consultas con WITHRepaso: contratista inmobiliario12Funciones de ventana, parte 2
Funciones RANK y DENSE_RANKRepaso: RANK y DENSE_RANKFunción NTILEFunciones de agregaciónCriterios ROWS y RANGEPractica por tu cuenta: Playground de SQL