JOIN en SQL
Un JOIN en SQL combina los renglones de dos tablas donde una columna coincide, como los pedidos con sus clientes. El tipo de JOIN decide qué pasa con los que no tienen pareja.
Selecciona cualquier frase de aquí para preguntarle a tu Maestro.
Tu tabla customers tiene 120 clientes en cuatro regiones; 30 nunca han comprado y los demás tienen 2.5 pedidos en promedio. Escribes customers INNER JOIN orders y COUNT(*) por región. ¿Qué total te da?
Qué es: un JOIN combina los renglones de dos tablas donde una columna coincide, como orders.customer_id con customers.customer_id. Es la forma de responder en SQL preguntas que viven en dos tablas a la vez, igual que BUSCARX en una hoja de cálculo.
Los tipos: INNER, LEFT, RIGHT y FULL OUTER deciden qué pasa con los renglones que no encuentran pareja. LEFT JOIN es el más usado en análisis.
Dónde falla: un join puede cambiar en silencio cuántos renglones tienes. Antes y después de cada join, cuenta los renglones y pregúntate cuál es la granularidad de lo que quedó.
Practica SQL en el curso gratis Funciones de ventana.
Así se usa
Cuatro joins, una pregunta
customers y orders
- INNER JOIN: solo clientes que tienen al menos un pedidoLos renglones sin pareja en la otra tabla desaparecen.
- marcado: LEFT JOIN: todos los clientes; NULL donde no hay pedidoEl más común en análisis: la tabla de la izquierda manda.
- RIGHT JOIN: todos los pedidos, aunque falte su cliente
- FULL OUTER JOIN: todo de las dos, emparejado donde se pueda
Cuándo mirar más de cerca
Un filtro después de un LEFT JOIN
clientes_y_pedidos.sql
- SELECT c.customer_id, COUNT(o.order_id) AS pedidos
- FROM customers c
- LEFT JOIN orders o ON o.customer_id = c.customer_id
- WHERE o.status = 'paid'
- GROUP BY c.customer_id
Haces LEFT JOIN de orders para conservar a cada cliente y luego agregas WHERE o.status = 'paid'. ¿Qué pasa con los clientes sin pedidos?
Pregúntale a tu Maestro sobre JOIN en SQL
Te responde desde la página gratis más cercana a esta palabra, igual que mientras estudias.
Tú: ¿Qué quiere decir "JOIN en SQL", en palabras sencillas?
Tu Maestro: Te lo explico con un caso tuyo, que se queda mejor que una definición. ¿Qué dos tablas de tu trabajo necesitas cruzar seguido?
Pregunta sobre: Responde desde la página "¿Cómo veo las filas, columnas y tipos de una tabla en pandas?"
Solo este navegador guarda lo que preguntas aquí. ¿Cómo funciona?
Para saber más
Términos relacionados
- SQL
SQL es el lenguaje para pedirle datos a una base de datos: qué columnas, de qué tabla, qué filas y cómo resumirlas. Te regresa otra tabla.
- Base de datos
Una base de datos guarda datos en tablas conectadas, con reglas para cada columna, para que muchas personas y programas los usen y cambien sin pisarse.
- Granularidad (de una tabla)
Lo que representa una fila de una tabla: una persona, una transacción, un planeta, una persona por lenguaje. Contar filas solo cuenta lo que quieres si conoces la granularidad.
- Esquema de estrella
Un esquema de estrella acomoda los datos para analizar: una tabla de hechos con eventos, como ventas, al centro, unida por llaves a tablas de dimensiones (cliente, producto, fecha) que los describen.