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

Select con JOIN a 3 tablas

Estas en el tema de Select con JOIN a 3 tablas en el foro de Bases de Datos General en Foros del Web. Buenos días: Después de buscar durante varios días sigo siendo incapaz de hacer funcionar esta sentencia select combinando 3 tablas. Select * FROM 1100_UN AS ...
  #1 (permalink)  
Antiguo 14/10/2011, 01:57
 
Fecha de Ingreso: marzo-2005
Mensajes: 10
Antigüedad: 19 años, 2 meses
Puntos: 0
Select con JOIN a 3 tablas

Buenos días:

Después de buscar durante varios días sigo siendo incapaz de hacer funcionar esta sentencia select combinando 3 tablas.

Select * FROM 1100_UN AS A INNER JOIN 1100_TipoInmueble AS B ON A.IdTipoInmueble=B.IdTipoInmueble INNER JOIN 1100_TipoOperacion AS C ON A.IdTipoOperacion=C.IdTipoOperacion

el problema es que me da el siguente error....

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'A.IdTipoInmueble=B.IdTipoInmueble INNER JOIN 1100_TipoOperacion AS C ON A.IdTipoOperacion=C.IdTipoOperacion'.

Si sólo hago la comparación entre dos tablas (eliminando el otro INNER JOIN) no me da mayor problema pero evidentemente no hace lo que quiero.

He probado a "anidar" un INNER dentro de otro como vi en algún ejemplo pero tampoco, me sigue dando error.

La idea es muy "clásica"... tabla 1100_UN con inmuebles y, entre otros, un código de tipo de inmueble (casa, piso, finca...) y otro tipo de operación (venta, alquiler, etc...). Tenemos otras dos tablas donde sacamos la definición de ese tipo de inmueble y tipo de operación.

Lo he probado de esta manera....
SELECT * FROM 1100_UN AS UN, 1100_TipoInmueble AS TIPO, 1100_TipoOperacion AS OPERACION WHERE UN.IdTipoInmueble=TIPO.IdTipoInmueble AND UN.IdTipoOperacion=OPERACION.IdTipoOperacion

y me funciona pero luego tengo que meterle los condicionantes para filtrar según un buscador previo; me parece mucho mas práctico la primera opcion (si me funcionase claro )

Muchas gracias de antemano.

Saludos.
  #2 (permalink)  
Antiguo 14/10/2011, 15:24
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Select con JOIN a 3 tablas

Hola topcat:

En ACCESS sólo puedes hacer JOIN's entre dos tablas, cuando tienes más tablas tienes que hacer uso de paréntesis, para agrupar... no estoy seguro de la sintaxis, pues tengo un buen rato de no trabajar con access, pero creo que sería más o menos así:

Código SQL:
Ver original
  1. SELECT * FROM ((1100_UN AS A
  2. INNER JOIN 1100_TipoInmueble AS B ON A.IdTipoInmueble=B.IdTipoInmueble)
  3. INNER JOIN 1100_TipoOperacion AS C ON A.IdTipoOperacion=C.IdTipoOperacion)

Haz la prueba y nos comentas.

Saludos
Leo.
  #3 (permalink)  
Antiguo 17/10/2011, 01:28
 
Fecha de Ingreso: marzo-2005
Mensajes: 10
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Select con JOIN a 3 tablas

Buenos días...

justo en este momento que iba a poner la solución veo que un compañero forero también me la indica.

Efectivamente, hay que agrupar con paréntesis las sentencias INNER JOIN. Yo lo estaba haciendo pero mal.

Muchas gracias por las molestias.

Un saludo.

Etiquetas: access, join, select, tabla, tablas
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 21:03.