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

Consulta a tres tablas distintas

Estas en el tema de Consulta a tres tablas distintas en el foro de Mysql en Foros del Web. Antes que nada gracias por la atencion, pero tengo una duda.. Tengo tres tablas.. Cuenta N_cuenta Saldo Fech_ultm. Cliente idCliente Nombre Apellido CliCue idCliente N_Cuenta ...
  #1 (permalink)  
Antiguo 02/11/2011, 18:17
 
Fecha de Ingreso: junio-2011
Mensajes: 54
Antigüedad: 13 años, 5 meses
Puntos: 1
Exclamación Consulta a tres tablas distintas

Antes que nada gracias por la atencion, pero tengo una duda.. Tengo tres tablas..

Cuenta
N_cuenta
Saldo
Fech_ultm.

Cliente
idCliente
Nombre
Apellido

CliCue
idCliente
N_Cuenta

ahora yo quiero traer todos los datos relacionados entre las tres tablas
cuando hago esto me sale un cartel que dice "Puede que el campo X haga referencia a mas de una tabla" en que me equivoco?el problema sera en el asterisco?

Código MySQL:
Ver original
  1. select * from Cuenta c, Cliente ci, CliCue cu where c.N_Cuenta = cu.N_Cuenta And ci.idCliente = cu.idCliente order by N_Cuenta


Espero que me puedan ayudar!
  #2 (permalink)  
Antiguo 02/11/2011, 19:11
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta a tres tablas distintas

El problema se da cuando haces un JOIN entre tablas que contienen columnas con nombres idénticos. Siempre, en ese caso, debes indicar de qué tabla tomas la columna qu eindicas, y eso lo estás haciendo mal en la última cláusula:
Código MySQL:
Ver original
  1. FROM Cuenta c, Cliente ci, CliCue cu
  2. WHERE c.N_Cuenta = cu.N_Cuenta AND ci.idCliente = cu.idCliente
  3. ORDER BY N_Cuenta -- < Esta columna no se sabe a cuál de las dos tablas se refiere

Por otro lado, es mejor siempre usar INNER JOIN y no coma para hacerlo. Cosas de performance que podemos ver en otro momento.
Código MySQL:
Ver original
  1.     Cuenta c
  2.     INNER JOIN CliCue cu ON c.N_Cuenta = cu.N_Cuenta
  3.     INNER JOIN Cliente ci  ON ci.idCliente = cu.idCliente
  4. ORDER BY c.N_Cuenta
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 02/11/2011, 20:49
 
Fecha de Ingreso: junio-2011
Mensajes: 54
Antigüedad: 13 años, 5 meses
Puntos: 1
Respuesta: Consulta a tres tablas distintas

Hice lo que me dijiste pero ahora me dice:

error de sintaxis falta operador en la expresion de consulta 'c.N_Cuenta = cu.N_Cuenta INNER JOIN ...(hasta el final)'

Estoy usando Visual Basic 6 por si te sirve la aclaracion.. Gracias Por la respuesta!


Me acabo de dar cuenta que este temna no lo puse en ACCESS. Igual espero que me lo respondan.

Última edición por alekorn102; 02/11/2011 a las 21:10
  #4 (permalink)  
Antiguo 02/11/2011, 21:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta a tres tablas distintas

Si tu pregunta es para Access, la cosa cambia. Access no es un DBMS, sino apenas un manejador de tablas con algo de recursos SQL. Pero no reconoce todos los casos de JOIN.
Ponle el alias de la tabla al ORDER BY y olvidate del resto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: tablas, tres
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 04:14.