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

Consulta de 2 campos con el mismo nombre

Estas en el tema de Consulta de 2 campos con el mismo nombre en el foro de Mysql en Foros del Web. Hola amigos, necesito hace un consulta de 4 campos (dos de ellos con el mismo nombre) de tres tablas diferentes,las primeras 2 tablas guardan información ...
  #1 (permalink)  
Antiguo 16/04/2012, 15:22
Avatar de UNDR4  
Fecha de Ingreso: marzo-2012
Ubicación: Death Valley
Mensajes: 46
Antigüedad: 12 años, 1 mes
Puntos: 2
Pregunta Consulta de 2 campos con el mismo nombre

Hola amigos, necesito hace un consulta de 4 campos (dos de ellos con el mismo nombre) de tres tablas diferentes,las primeras 2 tablas guardan información de productos y almacenes, la tercera solo guarda una relación con ambas tablas y las existencias, seria algos así

Productos->Nombre
Almacenes->Nombre
Inventario->Cantidad1, Cantidad2

Donde Producto y Almacenes, Se relacionan mediante Inventario

la consulta la tengo de esta manera

SELECT productos.nombre,almacenes.nombre,cantidad1,cantid ad2 FROM productos p,almacenes a, inventario i WHERE p.id_producto=i.id_producto and a.id_almacen=i.id_almacen ORDER BY productos.nombre

al usar esta consulta me genera un error, podrían decirme que tengo mal o la forma de mostrar lo que quiero, saludos
__________________
†UNDR4†
Un programador es un mamífero nocturno de ojos rojos capaz de conversar con objetos inanimados.
  #2 (permalink)  
Antiguo 16/04/2012, 18:30
Avatar de latinpower  
Fecha de Ingreso: septiembre-2010
Ubicación: Canelones
Mensajes: 116
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: Consulta de 2 campos con el mismo nombre

Código MySQL:
Ver original
  1. SELECT productos.nombre, almacenes.nombre, inventario.cantidad1, inventario.cantidad2
  2.  
  3. FROM productos p,almacenes a, inventario i
  4.  
  5. p.id_producto=i.id_producto and
  6. a.id_almacen=i.id_almacen
  7.  
  8. ORDER BY p.nombre

prueba eso.
  #3 (permalink)  
Antiguo 17/04/2012, 09:32
Avatar de UNDR4  
Fecha de Ingreso: marzo-2012
Ubicación: Death Valley
Mensajes: 46
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Consulta de 2 campos con el mismo nombre

latinpower así es como lo eh estado haciendo pero me marca " unknow column productos.nombre" tanto en la consola mysql como en la aplicación donde uso la BD
__________________
†UNDR4†
Un programador es un mamífero nocturno de ojos rojos capaz de conversar con objetos inanimados.
  #4 (permalink)  
Antiguo 17/04/2012, 09:44
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: Consulta de 2 campos con el mismo nombre

Disculpa, y solo por duda, si eliminas esa columna del SELECT si se ejecuta correctamente la consulta a base de datos?

Si sí funciona de esta manera, has verificado que si exista la columna en la tabla productos con el nombre que le has puesto?
  #5 (permalink)  
Antiguo 17/04/2012, 10:10
Avatar de UNDR4  
Fecha de Ingreso: marzo-2012
Ubicación: Death Valley
Mensajes: 46
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Consulta de 2 campos con el mismo nombre

mike28gt si amigo, eh verificado que las columnas existan, y si cambio la estructura de la consulta funciona perfecto
__________________
†UNDR4†
Un programador es un mamífero nocturno de ojos rojos capaz de conversar con objetos inanimados.
  #6 (permalink)  
Antiguo 17/04/2012, 10:19
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: Consulta de 2 campos con el mismo nombre

Cita:
Iniciado por UNDR4 Ver Mensaje
mike28gt si amigo, eh verificado que las columnas existan, y si cambio la estructura de la consulta funciona perfecto
Compañero, acabo de ver cual es el error, el ORDER BY funciona unicamente con las columnas que retorna el statement SELECT, si te das cuentas esta ordenando por "p.nombre", cambia ese valor por "productos.nombre" y así no te debería de dar ningun problema.

Saludos!
  #7 (permalink)  
Antiguo 17/04/2012, 10:22
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: Consulta de 2 campos con el mismo nombre

Una consulta, si estas asignandole el nombre de "p" a la tabla productos (de igual forma con las demás tablas) porque no utilizas ese nuevo nombre en las columnas del SELECT?
  #8 (permalink)  
Antiguo 17/04/2012, 10:37
Avatar de UNDR4  
Fecha de Ingreso: marzo-2012
Ubicación: Death Valley
Mensajes: 46
Antigüedad: 12 años, 1 mes
Puntos: 2
Respuesta: Consulta de 2 campos con el mismo nombre

bueno ya funciono, la consulta era

Código MySQL:
Ver original
  1. SELECT productos.nombre,almacenes.nombre,cantidad1,cantidad2
  2. FROM productos,almacenes,inventario  
  3. WHERE productos.id_producto=inventario.id_producto
  4. AND almacenes.id_almacen=inventario.id_almacen
  5. ORDER BY productos.nombre

es prácticamente lo mismo que arriba, solo cambia el echo de que no asigne un nombre "x" a las tablas, en cuanto lo que dices mike28gt si lo hice, pero me marcaba el mismo error en ambos casos,en fin muchas gracias por responder
__________________
†UNDR4†
Un programador es un mamífero nocturno de ojos rojos capaz de conversar con objetos inanimados.
  #9 (permalink)  
Antiguo 17/04/2012, 10:44
Avatar de mike28gt  
Fecha de Ingreso: abril-2010
Mensajes: 56
Antigüedad: 14 años
Puntos: 14
Respuesta: Consulta de 2 campos con el mismo nombre

Que bien que ya funciono! Que tengas un excelente día :)
  #10 (permalink)  
Antiguo 17/04/2012, 11:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Consulta de 2 campos con el mismo nombre

Tu error ha sido en realidad bastante elemental, pero no se entiende por qué lo has cometido, a menos que estés copiando las sentencias de algún lado sin entender lo que escribes.
El tema es así: le has puesto ALIAS a las tablas del FROM, pero luego pretendes invocar a las columnas de esas tablas por su nombre de tabla original.
¿Me puedes explicar para qué le pones alias, si luego no los usas?
Simplificando, la consulta debería haber sido escrita así:
Código MySQL:
Ver original
  1.   p.nombre,
  2.   a.nombre,
  3.   cantidad1,
  4.   cantidad2
  5.   productos p,
  6.   almacenes a,
  7.   inventario i
  8.   p.id_producto=i.id_producto
  9.   and a.id_almacen=i.id_almacen
  10. ORDER BY productos.nombre

Aunque en realidad, ara ser óptima sería mejor:
Código MySQL:
Ver original
  1.   p.nombre NomberProducto,
  2.   a.nombre NombreAlmacen,
  3.   cantidad1,
  4.   cantidad2
  5.   productos p
  6.   INNER JOIN inventario i ON  p.id_producto=i.id_producto
  7.   INNER JOIN almacenes a ON i.id_almacen = a.id_almacen
  8. ORDER BY productos.nombre
__________________
¿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: campos, relaciones, 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 10:51.