Sirve para establecer la relacion entre dos tablas en una consulta. Supongo que hasta aquí no te digo nada nuevo.
tabla1 [modificador]
JOIN tabla2
ON tabla1.campoX=tabala2.campoY
donde modificador puede ser INNER, LEFT, RIGHT u otros más especificos pero si entiendes estos luego puedes entender los otros (ademas no los implementan todos los motores).
INNER es la opción por omisión, es decir que si no se pone ningun modificador va a aplicar INNER. Bien, con INNER la consulta tendra en cuenta las parejas de registros que cumplan la condición establecida en la clausula ON, en este caso donde se cumpla que el campoX de la tabla 1 sea igual que el campoY de la tabla 2.
LEFT en este caso la consulta nos dara
TODOS los registros de la tabla de la izquierda es decir en este caso tabla1 tengan o no pareja en la tabla2.
RIGHT igual que LEFT pero con la tabla derecha, es decir tabla2 en este caso.
Cosas a tener en cuenta si el contenido de los campos de la clausula ON no son unicos, evidentemente la conbinación puede llegar a generar mas parejas que registros originales.
Código:
Tabla1
CampoX CampoZ
1 AAA
2 BBBB
3 CCC
Tabla2
CampoY CampoA
1 25
2 30
4 50
Select Tabla1.CampoX, Tabla2.CampoY, Tabla1.CampoZ, Tabla2.CampoA
FROM tabla1 [modificador] JOIN tabla2
ON tabla1.campoX=tabla2.campoY;
Resultado INNER
CampoX CampoY CampoZ CampoA
1 1 AAA 25
2 2 BBBB 30
Resulado LEFT
CampoX CampoY CampoZ CampoA
1 1 AAA 25
2 2 BBBB 30
3 nulo CCC nulo
Resultado RIGHT
CampoX CampoY CampoZ CampoA
1 1 AAA 25
2 2 BBBB 30
nulo 4 nulo 50
Te dejo para que pienses que pasa si hay repeticiones en uno de los campos de la relación.
Quim