Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Acerca de join

Estas en el tema de Acerca de join en el foro de Bases de Datos General en Foros del Web. He estado leyendo acerca de la sentencia JOIN pero no entiendo nada. Alguien me podria explicar en lenguaje coloquial cual es la funcion de esta ...
  #1 (permalink)  
Antiguo 29/05/2008, 21:46
 
Fecha de Ingreso: noviembre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 0
Acerca de join

He estado leyendo acerca de la sentencia JOIN pero no entiendo nada. Alguien me podria explicar en lenguaje coloquial cual es la funcion de esta sentencia y como utilizarla. muchas gracias
  #2 (permalink)  
Antiguo 30/05/2008, 02:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Acerca de join

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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:55.