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

column in from clause is ambiguous

Estas en el tema de column in from clause is ambiguous en el foro de Bases de Datos General en Foros del Web. Hola. Estoy haciendo una consulta para obtener información de varias tablas mediante de la sentencia JOIN y me arroja el error: column in from clause ...
  #1 (permalink)  
Antiguo 22/11/2009, 20:37
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
column in from clause is ambiguous

Hola.
Estoy haciendo una consulta para obtener información de varias tablas mediante de la sentencia JOIN y me arroja el error: column in from clause is ambiguous.
Resulta que en mi tabla contrato_cliente uno de los campos es id_comuna. Ese campo es un numero (1,2,3...N) pero yo lo que estoy haciendo es que por medio de un join a la tabla comunas poder "traer" la descripcion_comuna a la que ese numero pertenece
y poder mostrarlo. Y como mencione me arroja el error antes mencionado.

Aqui mi consulta:

Código PHP:
select  id_contrato_clienterut_clienterazon_social_clientedireccion_servicio_cliente,descripcion_comunaresumen_contrato_clientefecha_inicio_contrato_clientefecha_termino_contrato_clientedescripcion_tipo_contrato_clientevalor_neto_retirovalor_neto_arriendo_contenedorvalor_neto_retiro_especialtonelaje_maximo_retiro_clientevalor_neto_retiro_excedente_clientecantidad_retiro_contratodescripcion_estado_contrato_clientedetalle_guia_serviciodescripcion_tipo_contenedordescripcion_tipo_de_cobro from contrato_cliente 
JOIN cliente USING 
(rut_cliente
JOIN comuna USING (id_comuna)
JOIN tipo_contrato_cliente USING (id_tipo_contrato_cliente
JOIN estado_contrato_cliente USING (id_estado_contrato_cliente
JOIN tipo_contenedor USING (id_tipo_contenedor)
JOIN tipo_de_cobro USING (id_tipo_de_cobro
Las columnas de la tabla comuna son:
comuna:id_comuna ----descripcion_comuna
Una de la columnas de la tabla contrato_cliente es tambien el parametro id_comuna
He estado leyendo y tratando de solucionarlo pero no me resulta.

Gracias!!!
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #2 (permalink)  
Antiguo 22/11/2009, 20:52
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: column in from clause is ambiguous

El error dice que no sabe de que tabla tomar el campo que quieres mostrar.

Para corregir este error, debes especificar el campo anteponiendo el nombre de la tabla de la que quieres tomar el campo..

Ejemplo

select tipo_contrato_cliente.id_contrato_cliente, estado_contrato_cliente.rut_cliente etc etc.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 22/11/2009, 22:17
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: column in from clause is ambiguous

Le antepuse el nombre de la tabla a la que pertenece cada parámetro, pero aún asi me arroja el error. Aquí esta como quedo con los cambios

Código PHP:
select  contrato_cliente.id_contrato_clientecliente.rut_clientecliente.razon_social_clientecontrato_cliente.direccion_servicio_cliente,comuna.descripcion_comunacontrato_cliente.resumen_contrato_clientecontrato_cliente.fecha_inicio_contrato_clientecontrato_cliente.fecha_termino_contrato_clientetipo_contrato_cliente.descripcion_tipo_contrato_clientecontrato_cliente.valor_neto_retirocontrato_cliente.valor_neto_arriendo_contenedorcontrato_cliente.valor_neto_retiro_especialcontrato_cliente.tonelaje_maximo_retiro_clientecontrato_cliente.valor_neto_retiro_excedente_clientecontrato_cliente.cantidad_retiro_contratoestado_contrato_cliente.descripcion_estado_contrato_clientecontrato_cliente.detalle_guia_serviciotipo_contenedor.descripcion_tipo_contenedortipo_de_cobro.descripcion_tipo_de_cobro from contrato_cliente 
JOIN cliente USING 
(rut_cliente
JOIN comuna USING (id_comuna)
JOIN tipo_contrato_cliente USING (id_tipo_contrato_cliente
JOIN estado_contrato_cliente USING (id_estado_contrato_cliente
JOIN tipo_contenedor USING (id_tipo_contenedor)
JOIN tipo_de_cobro USING (id_tipo_de_cobro
¿Como puedo corregirlo?

Gracias por la ayuda
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #4 (permalink)  
Antiguo 22/11/2009, 23:10
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: column in from clause is ambiguous

al uusar using en tantas tablas, la consulta no logra ubicar que campo hacer referencia.

haz algo así:

Código sql:
Ver original
  1. SELECT  cc.id_contrato_cliente, c.rut_cliente, c.razon_social_cliente, cc.direccion_servicio_cliente,co.descripcion_comuna, etc etc
  2. FROM contrato_cliente cc
  3. JOIN cliente c ON cc.rut_cliente = c.rut_cliente  
  4. JOIN comuna co ON co.id_comuna=el otro
  5. etc etc

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 22/11/2009, 23:57
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: column in from clause is ambiguous

@huesos52, ahí me resulto aplicando los cambios que me mencionaste.

Te hago otra consulta, en la misma consulta, necesito concatenar el rut_cliente y el dv_cliente que estan en la tabla cliente para que salga de la forma 12345678-9 ya que si no lo concateno me sale 12345678 . Al aplicar la funciona me sale lo siguiente: CONCAT function concat does not exist
Aqui mi consulta:

Código PHP:
select  cc.id_contrato_clienteconcat (c.rut_cliente,'-',c.dv_cliente), c.razon_social_clientecc.direccion_servicio_cliente,co.descripcion_comunacc.resumen_contrato_clientecc.fecha_inicio_contrato_clientecc.fecha_termino_contrato_clientetcc.descripcion_tipo_contrato_cliente,cc.valor_neto_retirocc.valor_neto_arriendo_contenedorcc.valor_neto_retiro_especialcc.tonelaje_maximo_retiro_clientecc.valor_neto_retiro_excedente_clientecc.cantidad_retiro_contratode.descripcion_estado_contrato_clientecc.detalle_guia_serviciotcn.descripcion_tipo_contenedortdc.descripcion_tipo_de_cobro from contrato_cliente cc
JOIN cliente c ON cc
.rut_cliente =c.rut_cliente
JOIN comuna co ON co
.id_comuna c.id_comuna
JOIN tipo_contrato_cliente tcc ON tcc
.id_tipo_contrato_cliente cc.id_tipo_contrato_cliente 
JOIN estado_contrato_cliente de ON  de
.id_estado_contrato_cliente=  cc.id_estado_contrato_cliente
JOIN tipo_contenedor tcn ON tcn
.id_tipo_contenedorcc.id_tipo_contenedor
JOIN tipo_de_cobro tdc ON tdc
.id_tipo_de_cobrocc.id_tipo_de_cobro 
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #6 (permalink)  
Antiguo 23/11/2009, 00:09
Avatar de Capote  
Fecha de Ingreso: julio-2007
Ubicación: C h i l e
Mensajes: 136
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: column in from clause is ambiguous

Ahi lo pude solucionar, habia un problema de sintaxis


Gracias!
__________________
"La blanda respuesta quita la ira, Mas la palabra áspera hace subir el furor"
  #7 (permalink)  
Antiguo 23/11/2009, 06:14
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: column in from clause is ambiguous

Estos errores se presentan cuando se ubica un espacio entre la función y los paréntesis.

saludos y me alegra que te haya funcionado
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #8 (permalink)  
Antiguo 19/12/2009, 11:03
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 6 meses
Puntos: 0
De acuerdo Respuesta: column in from clause is ambiguous

tengo un problema parecido y ya especifice los campos pero aun me marca tengo 2 tablas una q se llama productos y otra imagenes ambos con un campo igual
cve_producto pero a la hora de consultar me sale
Column 'cve_producto' in where clause is ambiguous
por que será?
aqui dejo mi consulta




SELECT productos.id_producto,productos.cve_producto,produ ctos.descripcion,productos.precio, imagenes.cve_producto,
MATCH (productos.cve_producto,productos.descripcion) AGAINST('molino' IN BOOLEAN MODE) AS Score
FROM productos JOIN imagenes ON
productos.cve_producto = imagenes.cve_producto
WHERE MATCH(cve_producto,descripcion) AGAINST('molino' IN BOOLEAN MODE);
estoy especificando que campos mostrar y me sale ese error alguna solucion?
  #9 (permalink)  
Antiguo 19/12/2009, 11:05
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: column in from clause is ambiguous

Sale porque la Columna 'cve_producto' en la clausula where es ambigua -_-
Tienes un campo con el mismo nombre en dos tablas de la consulta, y no le especificas el campo de cual tabla usar.
  #10 (permalink)  
Antiguo 19/12/2009, 11:07
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: column in from clause is ambiguous

si jejeje gracias lo acababa de encontrar pero pues no me muestra nada me saca la consulta vacia pero eso ya es de lo gica o no?
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 07:06.