menu
languageEspañol
save_alt Descargar

Hoja de referencia de SQL JOIN

Referencia rápida de todos los tipos de SQL JOIN con diagramas visuales y ejemplos de código

INNER JOIN EL MÁS COMÚN

Devuelve solo las filas que tienen valores coincidentes en ambas tablas. Es el tipo de JOIN predeterminado y el más usado.
SELECT orders.id, customers.name, orders.amount
FROM orders
INNER JOIN customers
  ON orders.customer_id = customers.id

Puntos clave:

  • Solo devuelve registros coincidentes de ambas tablas
  • Filtra automáticamente las filas sin coincidencia
  • El JOIN más eficiente en rendimiento
  • Se puede escribir solo como JOIN (INNER va implícito)

LEFT JOIN

Devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha. Si no hay coincidencia, se devuelven valores NULL en las columnas de la tabla derecha.
SELECT customers.name, orders.amount
FROM customers
LEFT JOIN orders
  ON customers.id = orders.customer_id

Puntos clave:

  • Conserva todos los registros de la tabla izquierda (la primera)
  • Aparecen valores NULL en las columnas de la tabla derecha sin coincidencia
  • También se conoce como LEFT OUTER JOIN
  • Útil para encontrar registros sin datos relacionados

RIGHT JOIN

Devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda. Es lo opuesto a LEFT JOIN.
SELECT orders.amount, customers.name
FROM orders
RIGHT JOIN customers
  ON orders.customer_id = customers.id

Puntos clave:

  • Conserva todos los registros de la tabla derecha (la segunda)
  • Aparecen valores NULL en las columnas de la tabla izquierda sin coincidencia
  • También se conoce como RIGHT OUTER JOIN
  • Siempre se puede reescribir como LEFT JOIN

FULL OUTER JOIN

Devuelve todas las filas de ambas tablas, con valores NULL donde no hay coincidencias en ninguna dirección.
SELECT customers.name, orders.amount
FROM customers
FULL OUTER JOIN orders
  ON customers.id = orders.customer_id

Puntos clave:

  • Combina los resultados de LEFT y RIGHT JOIN
  • Muestra todos los registros de ambas tablas
  • No es compatible con MySQL (usa UNION en su lugar)
  • Útil para encontrar todas las relaciones y huecos

CROSS JOIN ÚSALO CON CUIDADO

Devuelve el producto cartesiano de ambas tablas: cada fila de la primera tabla combinada con cada fila de la segunda.
SELECT sizes.name, colors.name
FROM sizes
CROSS JOIN colors

-- Alternative syntax
SELECT sizes.name, colors.name
FROM sizes, colors

Puntos clave:

  • No necesita cláusula ON (sin condición de join)
  • Filas del resultado = (filas de la tabla izquierda × filas de la tabla derecha)
  • Puede generar rápidamente conjuntos de resultados enormes
  • Útil para generar combinaciones o datos de prueba

LEFT ANTI JOIN

Devuelve las filas de la tabla izquierda que no tienen coincidencias en la tabla derecha. Útil para encontrar registros sin relaciones.
SELECT customers.name
FROM customers
LEFT JOIN orders
  ON customers.id = orders.customer_id
WHERE orders.id IS NULL

-- Alternative: NOT EXISTS
SELECT customers.name
FROM customers
WHERE NOT EXISTS (
  SELECT 1 FROM orders
  WHERE orders.customer_id = customers.id
)

Puntos clave:

  • Se implementa con LEFT JOIN + WHERE IS NULL
  • Encuentra registros sin datos relacionados
  • También se llama "LEFT EXCLUDING JOIN"
  • Ejemplo: clientes que nunca hicieron un pedido

RIGHT ANTI JOIN

Devuelve las filas de la tabla derecha que no tienen coincidencias en la tabla izquierda. Es lo opuesto a LEFT ANTI JOIN.
SELECT orders.id
FROM customers
RIGHT JOIN orders
  ON customers.id = orders.customer_id
WHERE customers.id IS NULL

-- Usually rewritten as LEFT ANTI JOIN
SELECT orders.id
FROM orders
LEFT JOIN customers
  ON orders.customer_id = customers.id
WHERE customers.id IS NULL

Puntos clave:

  • Se implementa con RIGHT JOIN + WHERE IS NULL
  • Encuentra registros huérfanos en la tabla derecha
  • Siempre se puede reescribir como LEFT ANTI JOIN
  • Ejemplo: pedidos sin un cliente válido

¿Buscas una mejor forma de escribir SQL?

Beekeeper Studio es un editor SQL moderno e intuitivo con autocompletado, historial de consultas y soporte para más de 15 bases de datos.

Prueba Beekeeper Studio gratis