Sintaxis JOIN

Resumen de las diferentes sintaxis para hacer joins.

Sintaxis FROM-WHERE:

-- Producto vectorial o cross join
SELECT * FROM Profesor, Departamento;

-- Equivalente a inner join
SELECT * 
  FROM Profesor p, Departamento d 
  WHERE p.CodigoDepartamento = d.Codigo;

Sintaxis JOIN-ON:

Sirve para cualquier tipo de join (inner, outer, left, right...)

SELECT * 
  FROM Profesor p JOIN Departamento d
  ON p.CodigoDepartamento = d.Codigo;

También se pueden mezclar las dos sintaxis anteriores en un JOIN-WHERE:

SELECT * 
  FROM Profesor p JOIN Departamento d
  WHERE p.CodigoDepartamento = d.Codigo;

Sintaxis JOIN-USING:

Sólo se puede hacer cuando las columnas en ambas tablas tienen el mismo nombre (en la DB de Departamentos no se puede hacer, pero en Sakila sí):

Joins de múltiples tablas

Es recomendable esta sintaxis para hacer joins entre muchas tablas:

De este modo en el WHERE quedan únicamente las condiciones finales que queramos aplicar, sin las condiciones para hacer los joins, que quedan dentro de los ON ....

Por ejemplo:

Last updated